XPath转义字符(HtmlUnit)

时间:2015-05-01 15:48:05

标签: java html xpath htmlunit html-escape-characters

我正在使用HtmlUnit,因此我正在使用XPath。 我正在尝试查找具有特定值的属性的元素,但是我的结果没有返回任何内容。我怀疑这是由于此值中符号的性质:“ $ ”和“ = ”。 我试图提取的元素的一个例子是:

<span data-reactid=".3.1.0.0.1:1.0.1.0.1:$0.$=12:$2.2">

我用来尝试拉取它的代码是:

page.getFirstByXPath("//span[@data-reactid='.3.1.0.0.1:1.0.1.0.1:$0.$=12:$2.2']");

我认为这是美元符号,如果我怀疑等号会出现问题,但也许我完全错了。

我的问题是,a)它确实与转义字符有关,而且b)如果没有,为什么结果不会拉动我想要的呢?

如果需要可以发布更多代码,但我想这就足够了。

谢谢!

1 个答案:

答案 0 :(得分:0)

以下是有效的,可能您的页面问题与XPath无关,例如:找不到元素

Html代码:

<html>
<body>
<span data-reactid=".3.1.0.0.1:1.0.1.0.1:$0.$=12:$2.2">
</span>
</body>
</html>

Java代码:

try (WebClient webClient = new WebClient()) {
    HtmlPage page = webClient.getPage("http://localhost/test.html");
    Object o = page.getByXPath("//span[@data-reactid='.3.1.0.0.1:1.0.1.0.1:$0.$=12:$2.2']");
    System.out.println(o);
}