xpath - 查找元素的多个连续出现

时间:2011-04-12 09:27:37

标签: c# xhtml xpath html-agility-pack

我有一个需要清理的xhtml节点,使用以下innerText:

<img style="width: 402px; height: 312px;" src="http://www.mydomain.com/test.jpg" align="left" border="0" height="312" hspace="5" vspace="5" width="402"> <br><font size="1" face="Arial"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><font face="Verdana">Image text goes here</font> </font>

我无法自己弄清楚返回/找到多个<br>元素的xpath表达式。我是否需要在节点中进行递归并检查最后一个匹配?

更新:我正在使用HtmlAgilityPack浏览文档。

提前致谢!

此致 byte_slave

2 个答案:

答案 0 :(得分:2)

不确定你想用它做什么。我已经问过你想把它改成什么作为问题的评论......

猜猜你可能想做什么......

要查找<br/>元素的总数,您只需使用XPath count(//descendant-or-self::br)

或者,如果您想对另一个<br/>旁边的所有<br/>元素执行某些操作,您可以使用XPath //descendant-or-self::br[following-sibling::br or preceding-sibling::br]返回<br/>这么长的列表小号

答案 1 :(得分:1)

XPath不起作用,因为这是 NOT XHTML。所有br标签都是未封闭的。哎呀,即使是img标签本身也是不完整的......

您需要使用纯文本处理(可能是正则表达式)或HTML清理程序来清除它。看看

xmllint

HTML tidy