2010-09-16 52 views
0

我正在使用Xpath在HTML文檔中查找字符串列表。字符串在您輸入文本框時出現,以提示可能的結果 - 換句話說,它是自動完成的。問題是,我試圖檢索自動完成建議的整個列表,結果全部由<強>標籤分開。查找由多個html標籤分割的字符串

爲了給幾個例子:我輸入 「STR」 和HTML看起來像這樣:

<強> STR < /強>荷蘭國際集團

但它變得更好!如果我完全不輸入任何內容,則自動完成結果中的每個字符都會因打開和關閉強標記而中斷。像這樣:

小號 <強> < /強> 噸 <強> < /強> ř <強> < /強> 我 <強> < /強> Ñ <強> < /強> g

所以,我的問題是,我如何構建一個xpath檢索此字符串,但省略強標記?

作爲參考,HTML的層次結構是這樣的:

-div
--ul
---李
----(字符串我正在尋找)
- --li
----(我正在尋找另一個字符串)

所以我的xpath在這一點上是:// div [@ class ='class']/ul/li/text(),這將使我獲得琴絃的各個部分。

回答

1

這個XPath表達式

string(PathToYourDiv/ul/li[$n]) 

評估爲$ n個li孩子的字符串值ul這是YourDiv的孩子。這是所有li元素的所有文本節點後代的連接 - 有效地爲您提供了所需的完整字符串。

您只需將YourDiv和$ n替換爲特定的表達式即可。

不要使用縮寫//,因爲

  1. 其評價可能會很慢。

  2. []索引這樣的表達式並不直觀,併產生令人驚歎的結果,導致FAQ。

+0

+1良好的答案,關於字符串值的解釋,並預見下一個問題...;) – 2010-09-17 13:20:12

0

這比那些想在這裏看到的問題少得多的代碼。

但是你爲什麼不嘗試這樣的變體:

//div[@class='class']/ul/li/strong/text()