我使用的是 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/