网站:
JavaEye 作者:
yuping322 发表时间: 2007-08-22 18:10 此文章来自于
http://www.JavaEye.com
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://yuping.javaeye.com/blog/115336
声明:本文系JavaEye网站原创文章,未经JavaEye网站或者作者本人书面许可,任何其他网站严禁擅自发表本文,否则必将追究法律责任!
原文链接: http://yuping.javaeye.com/blog/115336
1.
读取并解析XML文档:
其中,reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源来读取。得到的Document对象就带表了整个XML。
根据本人自己的经验,读取的字符编码是按照XML文件头定义的编码来转换。如果遇到乱码问题,注意要把各处的编码名称保持一致即可。
2.
取得Root节点
读取后的第二步,就是得到Root节点。熟悉XML的人都知道,一切XML分析都是从Root元素开始的。
2.2访问节点 List childrenList = elt.elements(); List childrenList = elt.elements("student"); Element eltChild = elt.element("student"); 2.3.访问属性 List attrList = elt.attributes(); Attribute attr = elt.attribute("sn"); String attrValue = elt.attributeValue("sn"); 2.4.删除元素和属性 Element eltStu = root.element("student"); root.remove(eltstu); -------------------------------- etl.remove(elt.attribute("sn")); 3. 遍历XML树
DOM4J提供至少3种遍历节点的方法:
1) 枚举(Iterator)
2)递归
递归也可以采用Iterator作为枚举手段,但文档中提供了另外的做法
3) Visitor模式
最令人兴奋的是DOM4J对Visitor的支持,这样可以大大缩减代码量,并且清楚易懂。了解设计模式的人都知道,Visitor是GOF设计模式之一。其主要原理就是两种类互相保有对方的引用,并且一种作为Visitor去访问许多Visitable。我们来看DOM4J中的Visitor模式(快速文档中没有提供)
只需要自定一个类实现Visitor接口即可。
Visitor接口提供多种Visit()的重载,根据XML不同的对象,将采用不同的方式来访问。上面是给出的Element和Attribute的简单实现,一般比较常用的就是这两个。VisitorSupport是DOM4J提供的默认适配器,Visitor接口的Default Adapter模式,这个模式给出了各种visit(*)的空实现,以便简化代码。
注意,这个Visitor是自动遍历所有子节点的。如果是root.accept(MyVisitor),将遍历子节点。我第一次用的时候,认为是需要自己遍历,便在递归中调用Visitor,结果可想而知。
4. XPath支持
DOM4J对XPath有良好的支持,如访问一个节点,可直接用XPath选择。
例如,如果你想查找
XHTML
文档中所有的超链接,下面的代码可以实现:
5. 字符串与XML的转换
有时候经常要用到字符串转换为
XML
或反之,
6 用XSLT转换XML
7.
创建
XML
一般创建XML是写文件前的工作,这就像StringBuffer一样容易。
8. 文件输出
一个简单的输出方法是将一个Document或任何的Node通过write方法输出
如果你想改变输出的格式,比如美化输出或缩减格式,可以用XMLWriter类
|