html嵌套表敏捷包有效xpath

时间:2009-11-24 04:59:30

标签: html xpath html-agility-pack

假设嵌套表没有唯一的属性(id,class或其他任何东西)来通过

获取所需的属性
doc.DocumentNode.SelectSingleNode("//table[@width='500']")

XPath是否禁止在其路径中多次使用表?

foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table/tr/center/table"))

抛出异常,因为SelectNodes返回null。

如果是这样,如何解决使用Agility Pack没有特定属性的嵌套表解析html的问题?

1 个答案:

答案 0 :(得分:1)

我在路径中错过了“td”标签。所以

foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table/tr/td/center/table/tr/td/center/table"))

确实有效。这实际上回答了我的问题。 假设父元素中有唯一属性值,获取相同表的其他解决方法可能是

HtmlNode tbl = doc.DocumentNode.SelectSingleNode("//td[@height='643']/center/table");