2015-11-02 327 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