所以我试图在HTML块中找到所有匹配的项目。让我们以以下示例为例:
<body>
<div>
test
<a href="test">
<img src="test">
</a>
</div>
</body>
所以我们去寻找单词test
,首先在<div>
中找到它,然后在<a>
中找到,然后在<img>
中找到。
我想做的是检索父级HTML,而没有附带的子级HTML。当前,InnerHtml / OuterHtml无法实现此目的,因为这两个都检索子级标记。我现在要解决的问题是遍历DOM树,但仅在父级上工作:<div></div>
然后test
然后<a href="test"></a>
然后<img src="test">
。
我正在使用HTML Agility Pack,但愿意考虑可以提供我认为需要的功能的任何东西。
这是我今天在DEV上发布的解决方案。请参阅本文以获取更多讨论和示例。
private string OuterMinusInner(HtmlNode root)
{
if (root == null)
return string.Empty;
foreach (var nodeFromList in
(from node
in root.ChildNodes
where node.NodeType != HtmlNodeType.Text
select node).ToList())
{
root.RemoveChild(nodeFromList);
}
return root.OuterHtml;
}