2

我正在为以下任务使用 html 敏捷性。

我想知道什么可以是xpath 查询来获取包含字符串搜索词的所有节点。它应该搜索元素的属性和内部文本。

<HTML>
 <BODY >
  <H1>Mr T for president</H1>
   <div class="test">We believe the new president should be</div>
   <div id="test">the awsome Mr T</div>
   <div>
    <H2>Mr T replies:</H2>
     <p>test paragraph</p>
     <p class="test">for Mr T</p>
   </div>
  </BODY>
</HTML>

假设我想让所有 html 元素在其属性或内部文本中都进行测试?

4

2 回答 2

2

要在属性值或文本节点中查找包含给定标记的所有元素节点,可以使用以下命令:

//*[text()[contains(., 'token')] or @*[contains(., 'token')]]

请注意,当文本被其他标记打断时,这将失败,例如在<p>foo<em>bar</em></p>.

于 2014-03-27T11:45:40.987 回答
0

您可以尝试使用此 XPath 将关键字“test”与元素的内部文本或属性值匹配:

//*[contains(text(), 'test') or @*[contains(., 'test')]]
于 2014-03-27T11:52:42.663 回答