我有一个由
制作的html文档<title>Something</title>
<p>Text1</p1>
<p>Text2</p1>
<p>Text3</p1>
...
我想从中获取没有Title元素的文本。我想只提取:
Text1
Text2
Text3
你知道我怎么做吗?
现在我这样做:
var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(MyFile.html);
var stringWriter = new StringWriter();
AgilityPackEntities.AgilityPack.ConvertTo(doc.DocumentNode, stringWriter);
stringWriter.Flush();
document.DocumentContent = stringWriter.ToString();
return document;
* document是方法参数。
答案 0 :(得分:0)
你使自己变得比现在更难。
将文档加载为HtmlAgilityPack.HtmlDocument
。
HtmlDocument doc = new HtmlDocument();
使用Load()
或LoadHtml()
将HTML加载到文档对象中。
作为一个例子,以下有五段。
doc.LoadHtml("<title>Something</title><p>Text1</p><p>Text2</p><p>Text3</p><p>Text4</p><p>Text5</p>");
要仅获取前三个段落,请将它们全部选中并迭代它们:
var nodes = doc.DocumentNode.SelectNodes("//p");
for (int i = 0; i < 3; i++)
{
HtmlNode node = nodes[i];
Console.WriteLine(node.InnerText);
}
导致打印输出
Text1
Text2
Text3