`

创建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
分享到:
评论

相关推荐

    Java创建xml文档笔记(DOM,DOM4J)

    本笔记将深入探讨如何使用DOM(文档对象模型)和DOM4J库来创建XML文档。 一、DOM解析器 DOM是W3C推荐的一种XML解析标准,它将整个XML文档加载到内存中,形成一棵树形结构,称为DOM树。通过DOM,我们可以方便地访问...

    XML中dom根据属性检索节点(C#)

    DOM(Document Object Model)是XML文档的一种表示方式,它将XML文档转换为一个树形结构,使得开发者可以通过编程方式来访问和操作XML文档的各个部分。 在C#中,DOM接口提供了丰富的类库来处理XML文档,主要涉及到`...

    DOM解析XML 创建XML

    DOM(Document Object Model)是处理XML文档的一种标准API,它将XML文档表示为一棵可操作的节点树,使得我们可以方便地对XML数据进行创建、查询、修改和删除。下面我们将深入探讨DOM解析XML以及如何创建XML。 DOM...

    dom4j读写xml文档实例

    要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...

    创建,添加xml结点

    2. **添加根节点**:根节点是XML文档的顶级元素。例如,如果我们创建一个描述人员列表的XML,可以有一个`<people>`作为根节点。使用`createElement()`方法创建元素,并通过`appendChild()`方法将其添加到文档中。 3...

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

    DOM解析是处理XML文档的一种常见方法,它将整个XML文件加载到内存中,形成一棵由节点构成的树形结构——DOM树。在这个树中,每个XML元素、属性、文本、注释等都有对应的节点。通过遍历和操作这些节点,我们可以轻松...

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

    此外,DOM4J还提供了许多其他功能,例如动态创建XML文档、查询XML数据(通过XPath表达式)等。如果你需要更精细地控制XML操作,如修改节点或添加新元素,DOM4J也提供了相应的API。 总结起来,DOM4J是处理XML的优秀...

    xml-DOM教学PPT

    XML-DOM(Document Object Model)是一种用于处理XML文档的标准接口,它允许程序员通过JavaScript、Java、C++等语言来创建、修改和访问XML文档。DOM将XML文档转换为一棵节点树,每个节点代表XML文档的一部分,如元素...

    Java解析XML文档(DOM与DOM4j两种方式)

    DOM解析器将整个XML文档加载到内存中,形成一个树形结构,称为DOM树。这种方式允许开发者通过节点遍历来访问和修改XML文档的任何部分。 1. 加载XML文档:使用`javax.xml.parsers.DocumentBuilderFactory`创建工厂...

    xmldom

    XMLDocument对象是XMLDOM的核心,它是整个XML文档的根节点,代表了一个完整的XML文件。这个对象提供了许多方法和属性,使得我们能够对XML文档进行读取、写入、查询和修改。 1. **创建和加载XML文档** - `load()` ...

    DBMS_XMLDOM DBMS_XMLPARSER DBMS_XMLQUERY 文档

    这个包包含了像DBMS_XMLPARSER.parse()这样的函数,可以将XML文本解析成DOM节点,还提供了DBMS_XMLPARSER.setProperty()来设置解析器的属性,如编码方式等。通过DBMS_XMLPARSER,开发者可以更好地控制XML的解析过程...

    使用DOM解析XML文档

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

    XMLDom.zip_XML文档

    XML文档对象模型(DOM,Document Object Model)是处理XML文档的标准API,它将XML文档视为一个可编程的对象结构,允许开发人员通过编程方式对XML文档进行创建、查询、更新和操作。 XML DOM定义了一个树形结构,其中...

    Dom4J生成XML的完整方法希望大家能用到

    本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至文件系统。 #### 一、Dom4J简介 Dom4J(Document Object Model for Java)是一款开源的、轻量级的...

    dom4j解析和创建xml简单实例

    XPath是一种在XML文档中查找信息的语言,与DOM4J结合使用,可以高效地定位到XML文档中的特定节点。接下来,我们将深入探讨这两个关键概念以及如何通过它们实现XML的处理。 1. DOM4J解析XML 当我们处理XML文档时,...

    XML_DOM 教程 XML_DOM 教程

    XML DOM是一种在编程中处理XML文档的标准接口,它允许程序员和脚本动态地访问、修改、添加和删除XML文档的结构、内容和样式。DOM将XML文档视为一棵由节点构成的树,其中每个元素、属性、文本等都是一个独立的节点。 ...

    XML&DOM帮助文档.rar

    DOM提供了一种方法,通过创建一个表示整个XML文档的对象模型,程序员可以使用这个模型来搜索、修改、添加或删除文档的任何部分。例如,你可以找到特定的元素节点,然后改变它的属性值,或者在某个位置插入新的子元素...

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    DOM解析器读取整个XML文档到内存中,构建一棵由节点组成的树,这些节点代表了XML文档的所有元素、属性、文本和其他结构。 在Java中,`org.w3c.dom`包提供了DOM解析XML的基础接口和类。以下是DOM解析XML的基本步骤:...

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

    它主要用于创建、读取、修改和遍历XML文档对象模型(DOM)。 ##### 2. XML数据示例 假设我们接收到的XML数据如下所示: ```xml 张三 <age>30 北京市 李四 内科 ``` ##### 3. XMLDOM包处理步骤 1....

Global site tag (gtag.js) - Google Analytics