Jon*_*Jon 6 .net c# html-agility-pack
我有一些输入标签是占位符,我用一些HTML替换.我用它替换它的HTML很多时候只有一个标签,这很容易:
HtmlNode node = HtmlNode.CreateNode(sReplacementString);
inputNode.ParentNode.ReplaceChild(node, inputNode);
Run Code Online (Sandbox Code Playgroud)
但是,如果我想inputNode用两个或更多节点替换HtmlNode.CreateNode(sReplacementString)只读取第一个节点.有没有办法替换sReplacementString多个标签?
据我所知,没有直接的方法可以做到这一点.HtmlNode.CreateNode方法从HTML片段创建单个节点,如果有多个节点,则只创建第一个节点.
作为一种解决方法,您可以创建一个临时节点,从中创建其子节点sReplacementString,然后在inputNode节点后面追加这些子节点,最后删除inputNode.
var temp = doc.CreateElement("temp");
temp.InnerHtml = sReplacementString;
var current = inputNode;
foreach (var child in temp.ChildNodes)
{
inputNode.ParentNode.InsertAfter(child, current);
current = child;
}
inputNode.Remove();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2207 次 |
| 最近记录: |