java - XPath 转义字符 (HtmlUnit)

标签 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) 如果不是,为什么结果不会是我想要的?

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

谢谢!

最佳答案

以下是可行的,可能您的页面存在与 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);
}

关于java - XPath 转义字符 (HtmlUnit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990227/

相关文章:

java - API 调用的 Retrofit 响应无效

javascript - 使用 JavaScript 创建元素时,SVG 折线不会显示点

html - 单击 anchor 链接时固定标题下的内容

c# - XPath 选择特定的子元素

xml - 如何使用XPATH查询以下xml?

java - 在java中反转数组并将其分配给新数组

Java同步死锁?

Java 没有看到我的 MAIN 子句?

html - 如何使用 HTML5 Canvas 绘制 donut 的一部分?

Java XPathFactory 线程安全