【发布时间】:2011-02-05 04:07:55
【问题描述】:
我有这个
身体:
<body><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent leo leo, ultrices eu venenatis et, rutrum fringilla dolor.</p></body>
代码:
HtmlNode body = doc.DocumentNode.SelectSingleNode("//body");
Dictionary<HtmlNode, HtmlNode> toReplace = new Dictionary<HtmlNode, HtmlNode>();
// I do some logic here adding nodes to the toReplace dictionary.
foreach (HtmlNode replaceNode in toReplace.Keys)
{
replaceNode.ParentNod.ReplaceChild(toReplace[replaceNode], replaceNode);
}
执行此操作后,主体节点的 InnerHtml 与开始时保持一致,尽管 OutterHtml 或 InnerText 显示出良好的结果。我的代码有问题吗?
结果:
// body.InnerHtml
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent leo leo, ultrices eu venenatis et, rutrum fringilla dolor.</p>
// body.OutterHtml
<body><p>Lorem ipsum dolor sit amet...</p></body>
【问题讨论】:
-
你在这里的东西看起来不错。但很难说没有看到新旧节点。你能展示一个body和一对新旧节点的例子吗?
-
Rohit,我已经添加了示例。
标签: replace innerhtml html-agility-pack