2010-01-07 119 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将包含????

相关问题