2010-09-16 53 views
0

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

为了给几个例子:我输入 “STR” 和HTML看起来像这样:

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

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

小号 <强> < /强> 吨 <强> < /强> ř <强> < /强> 我 <强> < /强> Ñ <强> < /强> g

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

作为参考,HTML的层次结构是这样的:

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

所以我的xpath在这一点上是:// div [@ class ='class']/ul/li/text(),这将使我获得琴弦的各个部分。

回答

1

这个XPath表达式

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

评估为$ n个li孩子的字符串值ul这是YourDiv的孩子。这是所有li元素的所有文本节点后代的连接 - 有效地为您提供了所需的完整字符串。

您只需将YourDiv和$ n替换为特定的表达式即可。

不要使用缩写//,因为

  1. 其评价可能会很慢。

  2. []索引这样的表达式并不直观,并产生令人惊叹的结果,导致FAQ。

+0

+1良好的答案,关于字符串值的解释,并预见下一个问题...;) – 2010-09-17 13:20:12

0

这比那些想在这里看到的问题少得多的代码。

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

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