怎样动态获得XML文件中的每一个节点。即使XML的层次变化也能获得他们的节点。
例:无论输入哪个id都能获得text的值怎样实现。谢谢!
<items id="0">
      <item id="1" text="a"> 
         <item id="1_1" text="aa">
           <item id="1_1_1" text="aaa"/>
       </item>
     </items>

解决方案 »

  1.   

    使用XPath
    //item[@id="1"]/@text StringReader reader = new StringReader("<items id=\"0\"><item id=\"1\" text=\"a\"/><item id=\"1_1\" text=\"aa\"><item id=\"1_1_1\" text=\"aaa\"/></item></items>");
    InputSource input = new InputSource(reader);
    XPathFactory factory = XPathFactory.newInstance();
    XPath xpath = factory.newXPath();
    NodeList list = (NodeList)xpath.evaluate("//item[@id=\"1\"]/@text",input,XPathConstants.NODESET);
    for(int i=0; i <list.getLength(); i++){
        System.out.println(list.item(i).getNodeValue());
    }