在WinRT的HtmlAgilityPack中使用ReplaceChild
本文关键字:ReplaceChild HtmlAgilityPack WinRT | 更新日期: 2023-09-27 18:34:18
我正在尝试在Windows应用商店应用程序中将HTML转换为markdown。以下代码适用于 .NET 4 MVC 项目
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
foreach (var x in doc.DocumentNode.SelectNodes("//strong"))
{
x.ParentNode.ReplaceChild(
HtmlAgilityPack.HtmlNode.CreateNode("**" + x.InnerHtml + "**"),
x);
}
SelectNodes
在 WinRT 版本中不可用,因此在移植代码时,我将其替换为后代。
foreach (var x in doc.DocumentNode.Descendants("//strong"))
{
x.ParentNode.ReplaceChild(
HtmlAgilityPack.HtmlNode.CreateNode("**" + x.InnerHtml + "**"),
x);
}
此代码使 HtmlDocument 保持不变。我做错了什么,还是这是一个错误?
Descendants
需要一个元素名称,而不是一个XPath
,因此您的代码不会返回任何元素并且文档保持不变。
您需要删除斜杠:
foreach (var x in doc.DocumentNode.Descendants("strong"))