我正在使用Xpath查找HTML文档中的字符串列表。当您在文本框中键入时,字符串会出现,以建议可能的结果 - 换句话说,它是自动完成的。问题是,我正在尝试检索整个自动完成建议列表,结果全部由< strong>分开。标签
举几个例子:我开始输入“str”,HTML将如下所示:
<强> STR< /强>荷兰国际集团
但它变得更好!如果我没有输入任何内容,则自动完成结果中的每个字符都会因打开和关闭强标记而中断。像这样:
取值 <强>< /强> Ť <强>< /强> [R <强>< /强> 一世 <强>< /强> ñ <强>< /强> 克
所以,我的问题是,如何构建一个检索此字符串的xpath,但省略了强标记?
作为参考,HTML的层次结构如下所示:
-div
--ul
---李
----(字符串我正在寻找)
---李
----(我正在寻找另一个字符串)
所以我此时的xpath是:// div [@ class ='class'] / ul / li / text(),这将获得字符串的各个部分。
答案 0 :(得分:1)
此XPath表达式:
string(PathToYourDiv/ul/li[$n])
计算为YourDiv子项li
的$ n-ul
子项的字符串值。这是所有文本节点后代与此li
元素的串联 - 有效地为您提供了所需的完整字符串。
你只需用特定的表达式替换YourDiv和$ n。
请勿使用//
缩写,因为:
评估可能非常缓慢。
使用[]
对此类表达式进行索引不直观,并产生令人惊讶的结果,从而产生常见问题解答。
答案 1 :(得分:0)
这个问题的代码要少于人们希望在这里看到的代码。
但你为什么不尝试这样的变体:
//div[@class='class']/ul/li/strong/text()