2010-01-07 116 views
1

如果我有HTML,看起來像:可以使用xpath獲取html定位標記的值嗎?

<td class="blah">&nbs;<a href="http://.....">????</a>&nbsp;</td> 

我能得到????值使用xpath? 它會是什麼樣子?

+0

你的標題,其實並不是你所要求的。看起來你真正想要的是獲取具有等於特定URL的「href」屬性的「a」元素的內容......是否正確? – 2010-01-07 05:06:15

+0

是的,這是正確的。 – mrblah 2010-01-07 05:11:59

+0

我不知道的XPath,但蟒蛇的HTML解析器,這是非常好的是BeautifulSoup 。不過,您正在使用Java,因此這可能沒有幫助。 – 2010-01-07 05:16:14

回答

0

爲什麼你會使用XML解析器解析HTML? 我會建議使用專用的Java HTML解析器,有很多,但我沒有嘗試過任何我自己。

至於你的問題,它會工作,我懷疑它不會工作,你會得到一個錯誤,當試圖解析它作爲HTML在&nbs;如果不是早些時候。

1

使用XPath你通常需要XML不是HTML,但有些解析器(例如,一個內置到PHP)有一個輕鬆的方式將解析大多數HTML,太。
如果你想找到所有<a>是的<td class="blah">直接孩子你需要的XPath是

//td[@class = 'blah']/a 
or 
//td[@class = 'blah']/a[@href = 'http://...'] 

(取決於你是否只想要一個URL或所有URL)
這會給你一套節點。您需要遍歷它,然後檢查firstChild(應該是文本節點)的nodeType以及子節點的數量(假設爲1)。然後firstChild將包含????

相關問題