快速业务通道

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号