2016-03-03 59 views
3
<td> 
<a>SAMPLE</a> 
<div> 
    <small>Phase: 
     Planning >> 
    <a>Performance</a> 
    </small> 
</div>   
</td> 

我試圖找到與上述「階段:規劃>>性能」文本的元素,但無濟於事。XPath定位元素使用文本()不工作

//small[contains(.,'Phase:')] 

希望它會幫助你:)

回答

2

目前現有的其他三個答案都不會完全符合您的要求。

這裏有一些XPath表達式會:

  • 您可以選擇small元素其規範化字符串 值是通過這個XPath Phase: Planning >> Performance

    //small[normalize-space() = 'Phase: Planning >> Performance'] 
    
  • 您可以選擇所有元素,無論名稱其 標準化的字符串值等於目標字符串:

    //*[normalize-space() = 'Phase: Planning >> Performance'] 
    

    ,但這不僅會smalldiv選擇,因爲兩者 具有等於Phase: Planning >> Performance一個字符串值。

  • 您可以在層次結構中選擇只有最低的元素,無論名稱,其標準化的字符串值等於目標字符串的 :

    //*[   normalize-space() = 'Phase: Planning >> Performance' and 
        not(.//*[normalize-space() = 'Phase: Planning >> Performance'])] 
    

重要的是要認識到, XPath text() = is different than XPath . =

+0

謝謝你爲我工作。非常感激! – rai

0

試試下面:

嘗試使用Performance屬於兩個不同的元素。

要找到Phase: Planning >>元素,您可以使用

//small[contains(text(),'Phase:')] 

,從而定位Performance元素

//a[contains(text(),'Performance')] 

注意在打印的第一個元素會給你兩種元素Phase: Planning >> Performance的文本。

0
<span>Planning &gt;&gt;</span> 

試試這個代碼

0

文本Phase: Planning >>和 - :

//*[text()[contains(normalize-space(.),'Phase: Planning >> Performance')]]