2017-06-14 67 views
1

我需要检索没有给定文本的孩子的div。我有此HTMLXpath找到一个没有特定文本的孩子的div

<h1>Rest Object</h1> 
<div style="background-color: transparent;"> 
    <div>Title: Rest object</div> 
    <div>ID: 2</div> 
    <div>Title: Rest object Copy</div> 
    <div>Full text: This is the full text. ID: 2</div> 
    <div>Value: 0.564</div> 
    <div>Timestamp: 2017-06-14 11:35:40</div> 
</div> 

我想查找<div>ID: 2</div>。怎么样?我试过

xpath=(//div) 

它返回第一个div。我试图用

xpath=(//div[not(div)]) 

,并返回 <div>Title: Rest object</div>



UPDATE。现在我知道我可以索引。

xpath=(//div[not(div)][2]) 

<div>ID: 2</div>

如果我不知道索引该怎么办。

返回

回答

1

一种方式来获得所需要的div是使用starts-with()功能:

//div[starts-with(.,'ID:')]  

boolean starts-with(string, string) - 返回true如果第一个参数开始以第二个参数字符串;否则返回false


限制搜索到有没有孩子div元素你可以使用count(*)功能:

//div[starts-with(.,'ID:')][count(*)=0] 
+0

是的,它的作品! 'xpath =(// div [starts-with(。,'ID')])'。 如果我想要一个没有孩子的div,该怎么办? –

+0

@YanKhonski,尝试'[not(./*)]'predicate – Andersson

+0

@YanKhonski,看我的更新 – RomanPerekhrest

相关问题