Xamarin Descendant上的HTML Agility Pack无法正常工作

时间:2017-02-20 10:27:24

标签: android xamarin html-agility-pack

我有一些HTML格式:

"\r
<p>One<\/p>\r
<p>Two<\/p>"
"\r
<p>Three<\/p>\r
<p>Four<\/p>"

之所以这样,是因为我正在使用网络服务,所以我无法更改内容。我的问题是,当我尝试获取节点的innerText,然后将其传递给TextView时,它什么都不做。我的代码有问题吗?我无法使用SelectSingleNode,因为Xamarin上的HTML Agility Pack不允许它。这是我到目前为止所做的:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(HTMLstring);

foreach (HtmlNode node in doc.DocumentNode.Descendants("p"))
        {
            string currentText = node.InnerText; //Fetching the InnerText of the node
            Console.WriteLine(currentText); // Testing if prints (It doesn't)
        }

1 个答案:

答案 0 :(得分:1)

您应该通过将<\/p>替换为</p>来修复响应,以便HTMLAgility可以解析它。

代码:

var HtmlBlock = @"\r
                  <p>One<\/p>\r
                  <p>Two<\/p>";
var doc = new HtmlAgilityPack.HtmlDocument();
doc.OptionFixNestedTags = true;
doc.LoadHtml(HtmlBlock.Replace(@"<\/", "</"));

foreach (HtmlNode node in doc.DocumentNode.Descendants("p"))
{
    string currentText = node.InnerText; //Fetching the InnerText of the node
    Console.WriteLine(currentText); // Testing if prints (It doesn't)
}