【问题标题】:Finding a string that is split by multiple html tags查找由多个 html 标签分割的字符串
【发布时间】:2010-09-16 22:13:37
【问题描述】:

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

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

string

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

r 一世 n g

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

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

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

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

【问题讨论】:

    标签: html xpath


    【解决方案1】:

    这个 XPath 表达式

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

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

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

    不要使用//的缩写,因为

    1. 它的评估可能很慢。

    2. 使用[] 为此类表达式编制索引并不直观,并且会产生令人惊讶的结果,从而导致出现常见问题解答。

    【讨论】:

    • +1 很好的答案,关于字符串值的解释,并预见下一个问题...... ;)
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 2020-04-23
      • 1970-01-01
      相关资源
      最近更新 更多