为什么 htmlagilitypack 在创建新节点时不包含属性?
Why doesn't htmlagilitypack include attribute when creating a new node?
使用 .Net 和 htmlagilitypack。尝试将外部标签放在节点上(循环中的 'item' 是找到的 'section' 标签之一):
<section aria-label="Tables">...</section>
foreach (var item in extraTags.ToList())
{
var newNode = HtmlNode.CreateNode("<oTag class='cCls'>" + item.OuterHtml + "</oTag>");
item.ParentNode.ReplaceChild(newNode, item);
}
所以我希望新节点看起来像:
<oTag class='cCls'><section aria-label="Tables">...</section></oTag>
但我得到:
<oTag class='cCls'><section>...</section></oTag>
它省略了 'aria-label="Tables"' 部分。怎么会?以及如何修复?
以下是我的作品,你能仔细检查一下吗?
var doc = new HtmlDocument();
doc.LoadHtml(@"
<section aria-label='Tables'>
Text
</section>
");
var section = doc.DocumentNode.Element("section");
var newNode = HtmlNode.CreateNode("<oTag class='cCls'>" + section.OuterHtml + "</oTag>");
section.ParentNode.ReplaceChild(newNode, section);
Console.WriteLine(doc.DocumentNode.OuterHtml);
使用 .Net 和 htmlagilitypack。尝试将外部标签放在节点上(循环中的 'item' 是找到的 'section' 标签之一):
<section aria-label="Tables">...</section>
foreach (var item in extraTags.ToList())
{
var newNode = HtmlNode.CreateNode("<oTag class='cCls'>" + item.OuterHtml + "</oTag>");
item.ParentNode.ReplaceChild(newNode, item);
}
所以我希望新节点看起来像:
<oTag class='cCls'><section aria-label="Tables">...</section></oTag>
但我得到:
<oTag class='cCls'><section>...</section></oTag>
它省略了 'aria-label="Tables"' 部分。怎么会?以及如何修复?
以下是我的作品,你能仔细检查一下吗?
var doc = new HtmlDocument();
doc.LoadHtml(@"
<section aria-label='Tables'>
Text
</section>
");
var section = doc.DocumentNode.Element("section");
var newNode = HtmlNode.CreateNode("<oTag class='cCls'>" + section.OuterHtml + "</oTag>");
section.ParentNode.ReplaceChild(newNode, section);
Console.WriteLine(doc.DocumentNode.OuterHtml);