Java解析XML之四(JDOM篇)
2013-03-15 12:52
381 查看
问题:
Java中用JDOM解析XML,具体包括读写。
* 参考 http://www.jdom.org/,需要下载最新包jdom-2.0.4.jar
* 下载包中没有API文档,需要参考http://www.jdom.org/docs/apidocs/index.html
* 目标:我们希望提供一个解决方案,在Java中使用XML就像Java本身那么简单。
* 它形如Java,它使用Java集合,它提供完全自然的API接口给Java开发人员, 它降低了使用XML的门槛。
* 相对DOM与SAX,它不是一个抽象层或增强这些API。相反,它提供了一个强大的,轻量的阅读和写作的复杂性和内存消耗的方案。
解决:
![](http://common.cnblogs.com/images/copycode.gif)
Java中用JDOM解析XML,具体包括读写。
* 参考 http://www.jdom.org/,需要下载最新包jdom-2.0.4.jar
* 下载包中没有API文档,需要参考http://www.jdom.org/docs/apidocs/index.html
* 目标:我们希望提供一个解决方案,在Java中使用XML就像Java本身那么简单。
* 它形如Java,它使用Java集合,它提供完全自然的API接口给Java开发人员, 它降低了使用XML的门槛。
* 相对DOM与SAX,它不是一个抽象层或增强这些API。相反,它提供了一个强大的,轻量的阅读和写作的复杂性和内存消耗的方案。
解决:
![](http://common.cnblogs.com/images/copycode.gif)
package com.clzhang.sample.xml; import java.io.*; import java.util.*; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import org.jdom2.output.Format; import org.jdom2.output.XMLOutputter; /** * 参考 http://www.jdom.org/,需要下载最新包jdom-2.0.4.jar * 下载包中没有API文档,需要参考http://www.jdom.org/docs/apidocs/index.html * 目标:我们希望提供一个解决方案,在Java中使用XML就像Java本身那么简单。 * 它形如Java,它使用Java集合,它提供完全自然的API接口给Java开发人员, 它降低了使用XML的门槛。 * 相对DOM与SAX,它不是一个抽象层或增强这些API。相反,它提供了一个强大的,轻量的阅读和写作的复杂性和内存消耗的方案。 */ public class JDOMTest { // 读取文件测试(其输入是writeXMLFile的输出) public void parseByJDOM(String file) throws Exception { SAXBuilder sb = new SAXBuilder(); Document doc = sb.build(new File(file)); Element root = doc.getRootElement(); List<Element> elements = root.getChildren(); for (Element element : elements) { String id = element.getAttribute("id").getValue(); System.out.println(element.getName() + "\tid=" + id); List<Element> children = element.getChildren(); for (Element child : children) { String name = child.getAttribute("name").getValue(); String value = child.getText(); System.out.println("\t" + child.getName() + "\t" + name + "=" + value); } } } // 写入文件测试 public void writeXMLFile(String filename) throws Exception { // 文档 Document doc = new Document(); // 根节点 Element root = new Element("add"); doc.setRootElement(root); // 子节点一 Element element = new Element("doc"); element.setAttribute("id", "1"); Element name = new Element("field"); name.setAttribute("name", "title"); name.setText("北京欢迎您"); Element content = new Element("field"); content.setAttribute("name", "content"); content.setText("北京真的欢迎您"); element.addContent(name); element.addContent(content); root.addContent(element); // 子节点二 element = new Element("doc").setAttribute("id", "2"); name = new Element("field").setAttribute("name", "title"); name.setText("上海也欢迎您"); content = new Element("field").setAttribute("name", "content"); content.setText("上海真的也欢迎您"); element.addContent(name); element.addContent(content); root.addContent(element); // 输出到文件,输出流及格式都设置为UTF-8 FileOutputStream fos = new FileOutputStream(filename); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); Format format = Format.getPrettyFormat(); format.setEncoding("UTF-8"); XMLOutputter output = new XMLOutputter(); output.setFormat(format); output.output(doc, osw); osw.close(); fos.close(); } public static void main(String[] args) throws Exception { JDOMTest ins = new JDOMTest(); ins.writeXMLFile("bbs.xml"); ins.parseByJDOM("bbs.xml"); } }
![](http://common.cnblogs.com/images/copycode.gif)
相关文章推荐
- JAVA 应用 DOM4J 及 JDOM 方式解析 XML
- JAVA解析XML的方式DOM、SAX、DOM4J、JDOM、StAX之详解与比较
- Java 之用jdom 解析XML(一)
- Java中Xml解析详解 DOM、SAX、JDOM、DOM4J
- JAVA解析XML的方式DOM、SAX、DOM4J、JDOM、StAX之比较
- 【Java开发】--jdom解析xml-修改xml
- java xml jdom创建 修改 解析
- java 解析xml的四种方式:sax,dom,dom4j,jdom
- Java 之用jdom 解析XML(一)
- java解析XML (JDOM & DOM4J,X-stream)(二)
- java解析xml -- DOM4J JDOM DOM SAX 之比较
- Java之DOM,SAX,JDOM,DOM4J,四种解析xml方法比较
- Java 之用jdom 解析XML(一)
- 【Java开发】--jdom解析xml-删除xml
- JAVA JDOM解析XML 带CDATA数据
- JAVA Jdom解析XML
- Java 之用jdom 解析XML(一)
- JDOM是JAVA中最常用的一种解析XML的工具
- Java中四种XML解析技术【JSP、SAX、JDOM、DOM4J】
- JAVA解析XML的方式DOM、SAX、DOM4J、JDOM、StAX之详解与比较