2015-11-02 319 views
0

我似乎無法弄清楚如何從屬性中獲取值。java Xpath無法獲取屬性值

的XML看起來是這樣的:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
<appender > 
    <param name="rootDir" value="C:/logs" /> 
</appender> 

If語句發現這等於文件,我只是無法弄清楚如何拉出來ROOTDIR值的名稱。

XPath xp = XPathFactory.newInstance().newXPath(); 
NodeList nl = (NodeList) xp.compile("//appender").evaluate(d, XPathConstants.NODESET); 
if (xp.compile("./@name").evaluate(nl.item(i)).equals("file")) { 
    XPathExpression expr = xp.compile("//param[name='rootDir']/@value"); 
    NodeList nodes = (NodeList) expr.evaluate(d, XPathConstants.NODESET); 
    for (int x = 0; x < nodes.getLength(); x++) { 
     System.out.println("attribute is : " + nodes.item(x).getNodeValue()); 
    } 
} 

謝謝。

+0

請下次注意您的縮進。 –

回答

2

你不會錯過很多 - 只是一個字符;-)。

你需要的是//param[@name='rootDir']/@value

+1

我現在感覺很傻。但是,謝謝!有效。 – user1158745