【发布时间】:2014-10-01 14:54:29
【问题描述】:
我正在使用org.jdom2.xpath 评估XPath 对html 文档的查询。
尝试从 head 元素中检索脚本文本,我尝试了以下查询:
/html/head/script[contains(text(), 'expression1') and contains(text(), 'expression2')]/text()
此查询在XPath Helper 和Chrome console ($x queries) 中返回一个结果,但使用org.jdom2.xpath 返回一个空结果集。
尝试更简单(但更重)的查询:
//script[contains(text(), 'expression1') and contains(text(), 'expression2')]/text()
产生相同的结果。
代码示例:
String xpath = "/html/head/script[contains(text(), 'expression1') and contains(text(), 'expression2')]/text()";
List<Text> tokeScriptResults = (List<Text>) xpathFactory.compile(xpath).evaluate(document);
事后思考:查看Document 对象,我发现由于脚本文本很长,jdom2 将其拆分为Texts 的数组,而不是一个长的Text。会不会是这个问题?
【问题讨论】: