我已经在这个问题上乱哄哄几个小时,我无法理解.使用XPath查找文本值很棘手,这个问题有太多的移动部分.
我有一个包含大表的网页,此表中的一个部分包含分配给特定单元的用户(受理人)列表.几乎总是有多个用户分配给一个单元,我需要确保将特定用户分配给表中的任何单元.我已经将几乎所有的选择器都用到了XPath上,而且我已经在这个问题的一半了.我似乎无法弄清楚如何使用contains与text()在此背景下.
这是我到目前为止所拥有的:
//td[@id='unit']/span [text()='asdfasdfasdfasdfasdf (Primary); asdfasdfasdfasdfasdf, asdfasdfasdfasdf; 456, 3456'; testuser]
Run Code Online (Sandbox Code Playgroud)
上面的XPath查询捕获了我正在查看的特定部分中的所有文本,这很好.但是,我只需要知道testuser是否在该部分中.
und*_*run 76
text()为您提供一组文本节点.我倾向于在// span // text()或其他东西的上下文中使用它.
如果您正在尝试检查元素中的文本是否包含您应该contains在元素上使用的内容而不是text()像这样的结果:
span[contains(., 'testuser')]
Run Code Online (Sandbox Code Playgroud)
XPath与上下文相当不错.如果您确切知道节点应该具有哪些文本,您可以执行以下操作:
span[.='full text in this span']
Run Code Online (Sandbox Code Playgroud)
但是如果你想做正则表达式(例如使用exslt),你需要使用string()函数:
span[regexp:test(string(.), 'testuser')]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92672 次 |
| 最近记录: |