1

我有一个由

<title>Something</title>
<p>Text1</p1>
<p>Text2</p1>
<p>Text3</p1>
...

我想从中获取没有标题元素的文本。我只想提取:

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 是方法参数。

4

1 回答 1

1

你让自己变得比必须的要困难得多。

将文档加载为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
于 2013-08-06T14:36:51.733 回答