我有一些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)
}
答案 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)
}