dom4j怎么获得他的所有子节点和所有节点的值呢?我是想读这个文件,现在只能读到值,我想取到<id>例如:<?xml version="1.0" encoding="UTF-8"?>
<files>
<file operate-type="add" file-type="doc">
<id>1</id> <name>通知</name> <creator>张三</creator> <meta>
<year>2010</year>
<department>局机关</department>
</meta>
</file>
</files>
我写的读文件操作:
SAXReader reader = new SAXReader();
Document doc = reader.read("d:\\files.xml");
         Element root = doc.getRootElement();//根节点;
Element foo; 
List nodes = root.elements("file");
for (Iterator i = nodes.iterator(); i.hasNext();) {
foo = (Element) i.next();
                            //这儿怎么写啊???????? System.out.println(?????????????);
}
跪求实现代码!
请求大家帮帮忙,谢谢!

解决方案 »

  1.   

    利用xpath 直接取id的ElementList<Element> elements=doc.selectNodes("/files/file//id")
      

  2.   

    要看你的xml结构如何了 要是 <file operate-type="add" file-type="doc">
    <id>1</id><name>通知</name><creator>张三</creator><meta>
    <year>2010</year>
    <department>局机关</department>
    </meta>
    </file>
    <file operate-type="add" file-type="doc">
    <id>2</id><name>通知2</name><creator>张三2</creator><meta>
    <year>2010</year>
    <department>局机关</department>
    </meta>
    </file>就可以去到 /file  就可以了  
    然后遍历得到file 的element
     直接element.elementTextTrim("id") 这样去取就可以了
      

  3.   

                    SAXReader reader = new SAXReader();
    Document doc = reader.read("d:\\files.xml");
            Element root = doc.getRootElement();//根节点;
    Element foo;
    for (Iterator i = root.elementIterator("file"); i.hasNext();) {
    foo = (Element) i.next();
    System.out.println(" ID:" + foo.elementText("id"));
                    }
                    
                    这样只能取到<file>下边的一级,如:<id>
                    取不到3级节点,如上边xml中的<year>
      

  4.   

    Element e = foo.element("meta");
    System.out.println(" year:" + e.elementText("year"));
      

  5.   

    <file>  elememt.selectSingleNode(节点路径)