JAVAX使用root而不是child来评估xpath表达式

时间:2016-06-20 20:02:08

标签: java xpath

public class Test {

    // create an XPathFactory
    XPathFactory xFactory = XPathFactory.newInstance();
    // create an XPath object
    XPath xpath = xFactory.newXPath();
...

String sample = "<node>"
        + "<child2><page>555</page></child2>"
        + "<child1>"
        + "<page>655</page>"
        + "</child1>"
        + "</node>";
...
Element child1 = (Element)root.getElementsByTagName("child1").item(0);
page = (String)xpath.evaluate("//page", child1,XPathConstants.STRING);

vs

page = (String)xpath.evaluate(".//page", child1,XPathConstants.STRING);

一个将返回555,另一个将返回655.如果我正在使用child1元素进行评估,它将如何在根处进行评估。我错误地认为所有评估都将在child1的指定环境中进行评估。

1 个答案:

答案 0 :(得分:0)

A&#34; /&#34;或&#34; //&#34;在路径的开头意味着选择来自包含上下文项的树的根。