问题:
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。相反,它提供了一个强大的,轻量的阅读和写作的复杂性和内存消耗的方案。
解决:
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");
}
}
分享到:
相关推荐
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
jdom解析xml
java 解析xml 方法 sax jdom dom stAX
本资源实现Java中的XML文件解析--【JDom】方法,生成XML文件的数据是从MySQL数据库中来的
用于xml解析,很好用的一个java类库
基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发...
Java解析xml所需jar包
xml数据前后台解析;提供了两种方式:dom4j与jdom对xml文件、xml字符串的读与写操作;同时实现在前台用jquery解析xml,将数据展示在页面上,程序可以跑
java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
Java 解析XML性能分析Demo。包含了DOM解析,SAX解析, JDOM解析,DOM4J解析,JAXB解析例子。
jdom解析xml文件小实例jdom解析xml文件小实例jdom解析xml文件小实例
xml样例 博文链接:https://jingrenlang.iteye.com/blog/356160
使用Jdom.jar包解析XML文件,JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合...
java解析XML四种方案: DOM 实现方法; DOM4J实现方法; JDOM实现方法; SAX实现方法;
Java 解析 xml 3种方法 sax JDom dom4j
Java中使用jdom解析xml的案例, 以及文档说明。
利用JDOM解析xml文件,并根据xml中为类名,生成相应的对象。
利用jdom读取xml 虽然是我自己写的 但是觉得有必要与大家分享一下
java 使用JDOM解析xml文件.docx
这是我做的简单的一个在jsp中用jdom解析xml的程序。只是显示,添加等简单的功能,来学习学习jdom解析xml的程序。如果你想学习那这一定是个很好的例子