【问题标题】:Select attribute content XPath选择属性内容 XPath
【发布时间】:2013-09-06 17:21:51
【问题描述】:

我有一个 XPath

//*[@class]

我想创建一个 XPath 来选择该属性内的内容。

<li class="tab-off" id="navList0">

所以在这种情况下,我想提取文本“tab-off”,这可以通过 XPath 实现吗?

【问题讨论】:

  • 我试过 //*[@class]/@class 它工作得很好。

标签: html dom xpath web


【解决方案1】:

您原来的//*[@class] XPath 查询返回所有具有class 属性的元素。你想要的是//*[@class]/@class 来检索属性本身。

如果您只想要值而不是属性名称,请尝试使用string(//*[@class]/@class)

【讨论】:

  • //*[@class]/@classstring(//*[@class]/@class) 之间的差异?
  • //*[@class]/@class 会给你结果..为什么需要字符串函数?
  • 第一个查询将返回整个节点,而第二个查询只返回节点值作为文本。
【解决方案2】:

如果你是专门从一个

  • 标签,你可以这样做:
    //li[@class]
    

    并遍历结果集以找到具有“tab-off”属性的类。或者

    //li[@class='tab-off']
    

    如果您能够进行硬编码。

    我假设您已经通过 XML 解析器(如 DOMParser)放置文件。这将使提取特定标签上可能需要的任何其他值变得更加容易。

  • 【讨论】:

    • 好吧,它需要适用于所有具有“类”属性的标签。所以 //*[@class]/@class 是我的解决方案。感谢支持
    猜你喜欢
    • 2018-09-12
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 2021-05-01
    • 2021-11-28
    相关资源
    最近更新 更多