查找由多个html标记拆分的字符串

时间:2010-09-16 22:13:37

标签: html xpath

我正在使用Xpath查找HTML文档中的字符串列表。当您在文本框中键入时,字符串会出现,以建议可能的结果 - 换句话说,它是自动完成的。问题是,我正在尝试检索整个自动完成建议列表,结果全部由< strong>分开。标签

举几个例子:我开始输入“str”,HTML将如下所示:

<强> STR< /强>荷兰国际集团

但它变得更好!如果我没有输入任何内容,则自动完成结果中的每个字符都会因打开和关闭强标记而中断。像这样:

取值 <强>< /强> Ť <强>< /强> [R <强>< /强> 一世 <强>< /强> ñ <强>< /强> 克

所以,我的问题是,如何构建一个检索此字符串的xpath,但省略了强标记?

作为参考,HTML的层次结构如下所示:

-div
--ul
---李
----(字符串我正在寻找)
---李
----(我正在寻找另一个字符串)

所以我此时的xpath是:// div [@ class ='class'] / ul / li / text(),这将获得字符串的各个部分。

2 个答案:

答案 0 :(得分:1)

此XPath表达式

string(PathToYourDiv/ul/li[$n])

计算为YourDiv子项li的$ n-ul子项的字符串值。这是所有文本节点后代与此li元素的串联 - 有效地为您提供了所需的完整字符串。

你只需用特定的表达式替换YourDiv和$ n。

请勿使用//缩写,因为

  1. 评估可能非常缓慢。

  2. 使用[]对此类表达式进行索引不直观,并产生令人惊讶的结果,从而产生常见问题解答。

答案 1 :(得分:0)

这个问题的代码要少于人们希望在这里看到的代码。

但你为什么不尝试这样的变体:

//div[@class='class']/ul/li/strong/text()