2014-04-11 79 views
0

我有方法從我的XML文件中讀取XML,我使用xpath從XML文件中獲取元素,但總是讓我的對象爲null。 我想獲得所有的價值元素,但給我空。如何通過XPath讀取XML

,我的方法:

public ArrayList<Object> GetAnyEntity(String PathXPath) throws JAXBException { 
     ArrayList<Object> list = new ArrayList<Object>(); 
     DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); 
     try { 
      DocumentBuilder builder = domFactory.newDocumentBuilder(); 
      Document dDoc = builder.parse("Projects//asdad//ProjectDataBase.xml"); 
      XPath xPath = XPathFactory.newInstance().newXPath(); 
      NodeList nl = (NodeList)xPath.evaluate("//Project/Layer[@idLayer=2]", dDoc, XPathConstants.NODESET); 
      for (int i = 0; i < nl.getLength(); i++) { 
       list.add(nl.item(i)); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return list; 
    } 

XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Project xmlns="http://www.example.org/ProjectDataBase" name="name1" > 
    <Layer idLayer="2"> 
     <LayerName>a</LayerName> 
     <Order>2</Order> 
     <Visible>false</Visible> 
    </Layer> 
</Project> 
+0

你有沒有通過代碼在調試器階梯?另外,爲什麼你不包含一個標準的XML標題(指示頁面引用等)? –

+0

我更新了我的代碼xml – MohammadTofi

回答

0

你mising周圍的2 '':

//Project/Layer[@idLayer='2'] 
+0

,但是當我嘗試打印「for(Object number:list){System.out.println(」layer =「+ number);} result是」Number = [Layer:null]「 – MohammadTofi