Html 如何获取xpath的文本值?

Html 如何获取xpath的文本值?,html,xpath,Html,Xpath,我的HTML如下所示: <li> <span> <strong>13. </strong> "For any queries, call 123456789" </span> </li 13 如有任何疑问,请致电123456789 在这种情况下,由于span有多个子项text()无法正确找到span的文本。此处解释了此行为: 要解决此特定问题,可以将xpath

我的HTML如下所示:

<li>
    <span>
        <strong>13. </strong>
        "For any queries, call 123456789"
    </span>
</li
  • 13 如有任何疑问,请致电123456789
    在这种情况下,由于
    span
    有多个子项
    text()
    无法正确找到
    span
    的文本。此处解释了此行为:

    要解决此特定问题,可以将xpath更改为:

    //span[contains(.,'For any queries')]
    

    在这种情况下,由于
    span
    有多个子项
    text()
    无法正确找到
    span
    的文本。此处解释了此行为:

    要解决此特定问题,可以将xpath更改为:

    //span[contains(.,'For any queries')]
    
    XPath表达式无效,因为不能将
    /
    放在谓词
    […]
    之前。
    Contains
    函数将计算第一个返回的文本节点(在您的情况下,是空白节点)

    您可以使用@Simon Tulling的答案,也可以保留您的原始想法。只需删除无用的
    /
    并添加
    normalize-space()
    谓词以忽略空白节点(由于
    span
    元素中存在
    strong
    元素)

    在这种情况下,XPath表达式将是:

    //span[contains(text()[normalize-space()],'For any queries')]
    
    XPath表达式无效,因为不能将
    /
    放在谓词
    […]
    之前。
    Contains
    函数将计算第一个返回的文本节点(在您的情况下,是空白节点)

    您可以使用@Simon Tulling的答案,也可以保留您的原始想法。只需删除无用的
    /
    并添加
    normalize-space()
    谓词以忽略空白节点(由于
    span
    元素中存在
    strong
    元素)

    在这种情况下,XPath表达式将是:

    //span[contains(text()[normalize-space()],'For any queries')]
    

    谢谢你的帮助谢谢你的帮助help@E非常感谢你的帮助help@E非常感谢你的帮助