在WinRT中的HtmlAgilityPack中使用ReplaceChild

时间:2014-12-15 10:50:55

标签: c# windows-runtime html-agility-pack

我试图在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);
}
WinRT版本中没有

SelectNodes,所以在移植代码时我用Descendants替换了它。

foreach (var x in doc.DocumentNode.Descendants("//strong"))
{
    x.ParentNode.ReplaceChild(
            HtmlAgilityPack.HtmlNode.CreateNode("**" + x.InnerHtml + "**"),
    x);
}

此代码保持HtmlDocument不变。我做错了什么,或者这是一个错误?

1 个答案:

答案 0 :(得分:0)

Descendants需要一个元素名称,而不是XPath,因此您的代码不返回任何元素,文档保持不变。

您需要删除斜杠

foreach (var x in doc.DocumentNode.Descendants("strong"))