2011-02-25 43 views
0

我試圖提取主體文本中的網址是如何根據XPATH中的內容提取節點?

indiainfoline「DOT」 COM /市場/新聞/水泥股 - 構建 - 對預算的期許/ 3567698750

下面的文本字符串我很seraching爲 -

「UltraTech的水泥(達2.77%),Ambuja公司 水泥(達2.15%),ACC(達1.72%),印度 水泥(達1.50%),馬德拉斯 水泥(上漲1.68%),棱晶水泥(上漲 1.81%),JK Lakshmi水泥(上漲2.11%)和Shree Ce我使用包換」

XPath查詢是

sampleBody = hd.DocumentNode.SelectSingleNode(" 
        //*[contains(.,'UltraTech Cement (up 2.77%)')]").InnerText; 

我得到了整個頁面,而不是特定節點的只是文本。

任何人都可以請說明原因嗎?

謝謝。

回答

4

我得到了整個頁面,尤其是 節點的只是文本,而不是 。

任何人都可以請說明原因嗎?

該XPath表達式:

//*[contains(.,'UltraTech Cement (up 2.77%)')] 

這意味着:具有'UltraTech Cement (up 2.77%)'作爲其字符串值的一部分的任何子元素。這是因爲.將擴展爲self::node(),然後使用string()作爲參數。

因此,如果文檔內容中有這樣的字符串,則根元素將其作爲其字符串值的一部分。

如果你需要有這樣的字符串值的最裏層元素,使用XPath表達式:

//*[contains(.,'UltraTech Cement (up 2.77%)')] 
    [not(*[contains(.,'UltraTech Cement (up 2.77%)')])] 

口語含義:我有我的孩子們的字符串,並沒有做。

+0

+1有一個很好的答案和清晰的解釋。 – 2011-02-25 16:07:53

+0

+1一個很好的答案。 – 2011-02-25 17:26:19

+0

+1以獲得正確的解釋。 – Flack 2011-02-25 18:16:22