`

创建XML文档,添加DOM节点

 
阅读更多
package topicclassifier;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;

public class XMLTool {

DocumentBuilderFactory factory;
DocumentBuilder builder;
Document doc;

public XMLTool(String filePath)throws Exception {
  factory = DocumentBuilderFactory.newInstance();
  builder = factory.newDocumentBuilder();
  doc = builder.parse(filePath);
}


public static void callWriteXmlFile(Document doc, Writer w,
         String encoding) {
  try {
   Source source = new DOMSource(doc);
   Result result = new StreamResult(w);
   Transformer xformer = TransformerFactory.newInstance().newTransformer();
   xformer.setOutputProperty(OutputKeys.ENCODING, encoding);
   xformer.transform(source, result);
  }
  catch (TransformerConfigurationException e) {
   e.printStackTrace();
  }
  catch (TransformerException e) {
   e.printStackTrace();
  }
}

public static boolean createXML(String filePath)
{
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder=null;
    try {
     builder = dbf.newDocumentBuilder();
    } catch(Exception e){
     e.printStackTrace();
     return false;
    }
    Document doc = builder.newDocument();
    Element root = doc.createElement_x("info");
    doc.appendChild(root); //将根元素添加到文档上
    try {
     FileOutputStream fos = new FileOutputStream(filePath);
     OutputStreamWriter outwriter = new OutputStreamWriter(fos);
     callWriteXmlFile(doc,outwriter,"gb2312");
     outwriter.close();
     fos.close();
     return true;
    } catch (Exception e) {
     e.printStackTrace();
     return false;
    }
}

public void addForm(FormWraper fw){
 
  Element form = doc.createElement_x("form");
  form.setAttribute("ID", "1");
  form.setAttribute("name", "form1");
  Element text = doc.createElement_x("text");
  form.appendChild(text);
  Element attr1 = doc.createElement_x("attr");
  attr1.setAttribute("label", "书名");
  attr1.setAttribute("name", "key");
  text.appendChild(attr1);
  Element   root   =   doc.getDocumentElement();
  root.normalize();
  root.appendChild(form);
    try {
      FileOutputStream fos = new FileOutputStream("D:/forminfo.txt");
      OutputStreamWriter outwriter = new OutputStreamWriter(fos);
      //((XmlDocument)doc).write(outwriter); //出错!
      callWriteXmlFile(doc,outwriter,"gb2312");
      outwriter.close();
      fos.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
}  
 
public static void main(String[] args) {
  // TODO Auto-generated method stub
  String filePath = "D:/forminfo.txt";
  XMLTool.createXML(filePath);
  try {
   XMLTool xt = new XMLTool(filePath);
   xt.addForm(new FormWraper());
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}

}


文章转载自http://blog.sina.com.cn/s/blog_49b05ad00100gcok.html
分享到:
评论

相关推荐

    使用DOM解析XML文档

    文档对象模型 节点和节点树 使用DOM加载XML文档 使用DOM访问、创建和修改节点

    XML编程从入门到精通

    XML编程从入门到精通 XML DOM 教程 • DOM 首页 • DOM 简介 • DOM 节点 • DOM 节点树 ...XML 文档对象模型定义访问和操作XML文档的标准方法。 DOM 将XML 文档作为一个树形结构,而树叶被定义为节点。

    易语言模块 XMLDOM 解析 构造 获取 更改 添加 删除 遍历元素 格式化XML

    1、XMLDOMDocument类: XML对象文档 ->操作创建或读写(元素、节点、属性、注释)等 2、IXMLDOMNode类:每个元素或节点基本都会有的方法;作为元素和节点的基类调用 3、IXMLDOMAttribute类:就是元素或节点的属性类 4...

    XML文档的DOM解析,可以提取文档的特征值

    基于MSXML的DOM解析,实现DOM节点,边集,路径的解析,同时还有对XML相似度比较的文档特征值提取,这是我的毕设

    使用dom4j解析XML

    本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器修改。与W3C DOM API相比,使用dom4j所包含的...

    Java解析XML文件的DOM和SAX方式.doc

    DOM(Document Object Model)是将 XML 文档转换为一个树模型,树的节点是一个个对象。通过存取这些对象就能够存取 XML 文档的内容。在 Java 中使用 DOM 方式解析 XML 文件需要使用 JAXP(Java API for XML ...

    dom4j解析及创建XML文档源码

    自己写的使用dom4j解析及创建xml的源码,主要有两个类 XmlTest.java:用于解析及创建xml Book.java 实体类,测试通过可以使用,当然记得要导入dom4j的jar包 // 创建节点 Element newBook = DocumentHelper....

    dom4j 解析(读取) xml 节点数据

    此方法解析xml时,不受xml层级的限制。文件中包含了说明文档,java类,以及所使用到的*.jar。并对代码做了注释让你一目了然……

    JDOM、Dom4j操作xml文档

    JDOM、Dom4j操作xml文档 创建xml xpath query xml元素,完成xml的创建、节点的创建、修改、遍历,xpath的遍历xml节点元素

    PHP基于DOM创建xml文档的方法示例

    DOM创建xml文档 用dom创建如下文档:    <title>天龙八部</title>  金庸    <![CDATA[ 天龙八部是金庸写的一本武侠小说,非常好看! ]]>     实现步骤: 1、创建DOM对象 ——》2、创建...

    使用dom4j读写XML文档

    使用dom4j读写XML文档 1.获取文档的根节点. Element rootElm = document.getRootElement(); 2.取得某节点的单个子节点. Element memberElm=root.element("member");// "member"是节点名 3.取得节点的文字 String ...

    PHP DOM扩展库:SimpleXML 解析XML文档.md

    DOM 将文档(如 HTML 或 XML)解析为一个由节点(如元素节点、属性节点、文本节点等)和对象组成的结构集合,这些节点和对象可以通过一系列属性和方法进行访问和修改。 1. **结构**:DOM 将文档解析为一个树形结构...

    XML.rar_java Dom xml_java xml dom_xml_xml dom tree java

    使用DOM解析XML文件 Dom解析是将xml文件全部载入,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件。对于特别大的文档,解析和加载整个文档可能很慢且很耗资源 http://www.iteye.com/topic/763926

    XML DOM技术的设计

    掌握DOM解析器,包括创建DOM解析器的步骤;Doucument对象的结构。节点的类型,包括Node接口;...根据以下提供的Customer.xml,使用DOM编写Java文件Customer1.java访问XML的特定节点,将XML文档中的所有数据读取出来。

    XML 文档对象模型定义访问和操作XML文档的标准方法-DOM技术

    XML 文档对象模型定义访问和操作XML文档的标准方法。 DOM 将 XML 文档作为一个树形结构,而树叶被定义为节点。

    js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码.docx

    "JS 中使用 DOM 复制(克隆)指定节点名数据到新的 XML 文件中的代码" 在本文中,我们将讨论如何使用 JavaScript 中的 DOM 来复制(克隆)指定节点名数据到新的 XML 文件中。这个过程涉及到三个重要的类:DOM...

    使用dom4j进行解析XML

    使用dom4j进行解析XML,通过文档助手创建文档节点。向文档节点中添加根元素节点, 向根元素节点上添加子节点

    Java实现用DOM文档和XML文件互换的操作

    文档对象模型是HTML和XML文档的编程接口规范,它与平台和语言是无关的,因而可以用各种语言在各种平台上实现。该模型定义了THML和XML文件在内存中的逻辑结构,提供了访问、存取THML和XML文件的方法。利用DOM规范,...

    java解析xml文档的常用方法

    "java解析xml文档的常用方法" Java 解析 XML 文档的常用方法有四种:DOM、SAX、JDOM 和 DOM4J。下面对这四种方法进行详细的介绍: 1. 使用 DOM(JAXP Crimson 解析器) DOM(Document Object Model)是一种以层次...

    oracle 使用XMLDOM包,保存XML节点数据到数据库表中,支持多个节点嵌套XML格式

    说明文档

Global site tag (gtag.js) - Google Analytics