DOM4J介绍与代码示例 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-16
Reader saxReader = new SAXReader();
Document document = null;
try {
document = saxReader.read(inputXml);
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
}
public Element getRootElement() {
return getDocument().getRootElement();
}
public void traversalDocumentByIterator() {
Element root = getRootElement();
// 枚举根节点下所有子节点
for (Iterator ie = root.elementIterator(); ie.hasNext();) {
System.out.println("======");
Element element = (Element) ie.next();
System.out.println(element.getName());
// 枚举属性
for (Iterator ia = element.attributeIterator(); ia.hasNext();) {
Attribute attribute = (Attribute) ia.next();
System.out.println(attribute.getName() + ":"
+ attribute.getData());
}
// 枚举当前节点下所有子节点
for (Iterator ieson = element.elementIterator(); ieson.hasNext();) {
Element elementSon = (Element) ieson.next();
System.out.println(elementSon.getName() + ":"
+ elementSon.getText());
}
}
}
public void traversalDocumentByVisitor() {
getDocument().accept(new MyVisitor());
}
/**
* 定义自己的访问者类
*/
private static class MyVisitor extends VisitorSupport {
/**
* 对于属性节点,打印属性的名字和值
*/
public void visit(Attribute node) {
System.out.println("attribute : " + node.getName() + " = "
+ node.getValue());
}
/**
* 对于处理指令节点,打印处理指令目标和数据
*/
public void visit(ProcessingInstruction node) {
System.out.println("PI : " + node.getTarget() + " "
+ node.getText());
}
/**
* 对于元素节点,判断是否只包含文本内容,如是,则打印标记的名字和 元素的内容。如果不是,则只打印标记的名字
*/
public void visit(Element node) {
if (node.isTextOnly())
System.out.println("element : " + node.getName() + " = "
+ node.getText());
else
System.out.println("--------" + node.getName() + "--------");
}
}
public static void main(String[] argv) {
XmlTra dom4jParser = new XmlTra(new File("students-gen.xml"));
// dom4jParser.traversalDocumentByIterator();
dom4jParser.traversalDocumentByVisitor();
}
}
DOM4J介绍与代码示例(5)时间:2011-07-08 51cto博客 zhangjunhd方法traversalDocumentByIterator()提供一种基于迭代的遍历实现,每个Element通过elementIterator()和attributeIterator()取代其子元素和属性的迭代器。 Visitor是GOF设计模式之一。其主要原理就是两种类互相保有对方的引用,并且一种 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于DOM4J介绍与代码示例 - 编程入门网的所有评论