xml 格式如下
<root>
  <crawler>
      <domain>
           <page></page>
           <page></page>
      </domain>      <content>
           <user></user>
            <user></user>
      </content>
  </crawler>
</root>
下面是读取的代码 SAXReader reader = new SAXReader();
 Document doc = reader.read(new FileInputStream(file),"UTF-8");
 Element root = doc.getRootElement();

 List crawlerElements=root.elements("crawler");
 for(int i = 0;i<crawlerElements.size();i++){
   Element crawlerElement=(Element)crawlerElements.get(i);   List domainElements = crawlerElement.elements("domain");
   List postElements = crawlerElement.elements("content");}
  List postElements = crawlerElement.elements("content"); 为什么取这个节点取不到呢?? 打印的信息为null 是不是方法用错了 大家帮忙看下 急急急!!!

解决方案 »

  1.   

    我用你的程序读,是读得到的哦。代码如下:
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.util.List;import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;public class DomTest { public static void main(String args[]) {
    SAXReader reader = new SAXReader();
    File file = new File("d:/domtest.xml");
    Document doc;
    try {
    doc = reader.read(new FileInputStream(file), "UTF-8");
    Element root = doc.getRootElement(); List crawlerElements = root.elements("crawler");
    for (int i = 0; i < crawlerElements.size(); i++) {
    Element crawlerElement = (Element) crawlerElements.get(i); List domainElements = crawlerElement.elements("domain");
    List postElements = crawlerElement.elements("content");
    System.out.println(postElements.size());
    }
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (DocumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
      

  2.   

    打印的信息为null怎么打印出的这个
      

  3.   

    a.xml文件
    <?xml version="1.0" encoding="GBK" standalone="yes"?>
    <root>
      <crawler>
      <domain>
      <page>1</page>
      <page>2</page>
      </domain>
      <content>
      <user>a</user>
      <user>b</user>
      </content>
      </crawler>
    </root>
    package bean;import java.io.File;
    import java.util.List;import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;public class Test2 {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Document document = null;
    try {
    SAXReader sr=new SAXReader();
    //根据xml文件生成document对象
    document = sr.read(new File("src/bean/a.xml"));
    //获取根节点root下的节点crawler
    Element  crawler= document.getRootElement().element("crawler");
    //获取crawler->domain下的page列表
    List<Element> pages=crawler.element("domain").elements("page");
    //遍历page
    for(Element page:pages){
    System.out.println("page="+page.getText());
    }
    //获取根节点crawler->content下的user列表
    List<Element> users=crawler.element("content").elements("user");
    //遍历users
    for(Element user:users){
    System.out.println("user="+user.getText());
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }}打印内容:
    page=1
    page=2
    user=a
    user=b
      

  4.   

    除了elements方法之外还有element这个方法,别总是都用elements方法。如果有多个重复节点,就用elements,单个的用element即可
      

  5.   

    crawlerElements.get(i)是Element类型的么?
    我记着好像是content什么的,之后得判断一下如果是element类型就怎样做