`

创建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所包含的...

    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 ...

    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 文档作为一个树形结构,而树叶被定义为节点。

    使用dom4j进行解析XML

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

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

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

    处理及遍历XML文档DOM元素属性及方法整理

    用于处理XML文档的DOM元素属性 代码如下: childNodes:返回当前元素所有子元素的数组; firstChild:返回当前元素的第一个下级子元素; lastChild:返回当前元素的最后一个子元素; nextSibling:返回紧跟在当前元素...

    dom4j解析xml字符串

    // 读取并解析XML文档 // SAXReader就是一个管道,用一个流的方式,把xml文件读出来 // // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档 // Document document = reader.read...

    dom4j解析和创建XML

    dom4j的工具包,有两个包动态,一个是dom4j.jar,一个是Jaxen.jar,其中dom4j.jar主要用户创建XML和读取XML,Jaxen.jar用于使用Xpath查找xml节点及属性。

    Java与XML读写之DOM篇

    DOM是Document Object Model的缩写,即文档对象模型。...通俗的说,就是通过解析XML文档,为XML文档在逻辑上建立一个树模型,树的节点是一个个对象。我们通过存取这些对象就能够存取XML文档的内容...

    zTree树型菜单+Dom4j解析XML+struts2+spring整合_完整树型菜单权限管理案例(附源代码+API学习文档)

    本案例实现了一套完整树型菜单权限管理,包含增加、修改、删除、移动节点。 附有源代码+完整的JAR包+API学习文档 前台页面展示用zTree插件,后台数据用XML保存,利用Dom4j进行解析,涉及到了对XML的增、删、改等等...

Global site tag (gtag.js) - Google Analytics