我似乎无法弄清楚如何从属性中获取值。
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());
}
}
感谢。
答案 0 :(得分:2)
你不会错过很多 - 只是一个角色; - )。
您需要的是//param[@name='rootDir']/@value
。