浏览 4069 次
锁定老帖子 主题:Dom4j官网解释实例
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-08
Dom4j是一个易于使用的,开源的库,在Java平台上与XML,XPath,XSLT协同工作。使用Java集合框架,全面支持DOM,SAX,JAXP。 官方网站:http://dom4j.org 1.将XML文件转换为一个Document对象 import java.net.URL; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public class Foo { public Document parse(URL url) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(url); return document; } } 2.很多方法用于操作Document,可以返回标准的Java迭代器 public void bar(Document document) throws DocumentException { Element root = document.getRootElement(); // iterate through child elements of root for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); // do something } // iterate through child elements of root with element name "foo" for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) { Element foo = (Element) i.next(); // do something } // iterate through attributes of root for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); // do something } } 3.快速循环 如果你需要遍历一个很大的XML文档,可以使用快速循环(递归)来改善性能。可以避免为每一次循环都创建一个迭代器对象。 public void treeWalk(Document document) { treeWalk( document.getRootElement() ); } public void treeWalk(Element element) { for ( int i = 0, size = element.nodeCount(); i < size; i++ ) { Node node = element.node(i); if ( node instanceof Element ) { treeWalk( (Element) node ); } else { // do something.... } } } 4.创建一个新的XML文档 import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Foo { public Document createDocument() { Document document = DocumentHelper.createDocument(); Element root = document.addElement( "root" ); Element author1 = root.addElement( "author" ) .addAttribute( "name", "James" ) .addAttribute( "location", "UK" ) .addText( "James Strachan" ); Element author2 = root.addElement( "author" ) .addAttribute( "name", "Bob" ) .addAttribute( "location", "US" ) .addText( "Bob McWhirter" ); return document; } } 5.将XML文档写入文件 通过write()方法将一个XML文档写入文件是最简单的方式。 FileWriter out = new FileWriter( "foo.xml" ); document.write( out ); 如果你想改变输出的格式,比如美观的格式(含缩进)和压缩的格式(不含缩进),可以使用XMLWriter类。 import org.dom4j.Document; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class Foo { public void write(Document document) throws IOException { // lets write to a file XMLWriter writer = new XMLWriter( new FileWriter( "output.xml" ) ); writer.write( document ); writer.close(); // Pretty print the document to System.out OutputFormat format = OutputFormat.createPrettyPrint(); writer = new XMLWriter( System.out, format ); writer.write( document ); // Compact format to System.out format = OutputFormat.createCompactFormat(); writer = new XMLWriter( System.out, format ); writer.write( document ); } } 6.XML和String之间的相互转换 通过asXML()方法,你可以将一个Document,Attribute或Element对象转换成一个包含XML文本的字符串。 Document document = ...; String text = document.asXML(); 同样,通过DocumentHelper.parseText()方法,你也可以方便地将一个字符串形式的XML转换成一个Document对象。 String text = "<person> <name>James</name> </person>"; Document document = DocumentHelper.parseText(text); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-12
楼主,总结得不错.
|
|
返回顶楼 | |
发表时间:2011-09-13
json 用户飘过
|
|
返回顶楼 | |