java Xpath无法获取属性值

时间:2015-11-02 18:54:46

标签: java xpath

我似乎无法弄清楚如何从属性中获取值。

xml看起来像这样:

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

If语句找到的名称等于file,我只是想不出如何为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());
    }
}

感谢。

1 个答案:

答案 0 :(得分:2)

你不会错过很多 - 只是一个角色; - )。

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