我试图在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不变。我做错了什么,或者这是一个错误?
答案 0 :(得分:0)
Descendants
需要一个元素名称,而不是XPath
,因此您的代码不返回任何元素,文档保持不变。
您需要删除斜杠:
foreach (var x in doc.DocumentNode.Descendants("strong"))