C# 删除父节点但保留子节点htmlagility包?
好的,我在这里被难住了,我如何删除父节点并用它的子节点替换它 我的目标是从图像中删除出站链接。我不想删除文档中的正常链接,只需删除那些使图像成为链接的链接,同时保持图像完整。 例如:C# 删除父节点但保留子节点htmlagility包?,c#,html-agility-pack,C#,Html Agility Pack,好的,我在这里被难住了,我如何删除父节点并用它的子节点替换它 我的目标是从图像中删除出站链接。我不想删除文档中的正常链接,只需删除那些使图像成为链接的链接,同时保持图像完整。 例如: <a href="http://www.w3schools.com"><img src="logo_w3s.gif"></a> 这样做应该会有所帮助,这将删除的父节点的子节点,但会保留孙子节点。RemoveChild中的这个真参数表示keepGrandChild 如果所有都有
<a href="http://www.w3schools.com"><img src="logo_w3s.gif"></a>
这样做应该会有所帮助,这将删除
的父节点的子节点,但会保留孙子节点。RemoveChild
中的这个真参数表示keepGrandChild
如果所有
都有
顺便说一句,我使用了一个转换器将它从Vb.net转换为C#所以如果有奇怪的错误,这可能是原因。检查我的答案,告诉我是否对你有帮助。该死的,是的。我决不会想到那样做。非常感谢。不客气,祝您的项目好运:)
<img src="logo_w3s.gif">
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(maintext);
dynamic allimages = doc.DocumentNode.Descendants("img").ToList;
if (scrapeimages.Checked) {
//the user does want images scraped. Remove image outbound links
try {
foreach (void n_loopVariable in allimages) {
n = n_loopVariable;
if (n.ParentNode.Name == "a") {
dynamic outer = n.OuterHtml;
dynamic newnode = HtmlNode.CreateNode(outer);
n.ParentNode.ReplaceChild(n.ParentNode, newnode);
}
}
maintext = doc.DocumentNode.OuterHtml;
} catch {
}
}
var node = doc.DocumentNode.SelectSingleNode(yourANode);
node.ParentNode.RemoveChild(node, true);
var nodeList = doc.DocumentNode.SelectNodes("img");
for(HtmlNode node in nodeList)
{
var parentATagNode = node.Parent.Parent;
parentATagNode.RemoveChild(node.Parent, true);
}