7

わかりましたので、HTMLAgilityPack で使用される XPath クエリは初めてです。

それでは、このページhttp://health.yahoo.net/articles/healthcare/what-your-favorite-flavor-says-about-youについて考えてみましょう。私が欲しいのは、ページのコンテンツだけを抽出することです。

そのために、最初にスクリプトとスタイルのタグを削除します。

Document = new HtmlDocument();
        Document.LoadHtml(page);
        TempString = new StringBuilder();
        foreach (HtmlNode style in Document.DocumentNode.Descendants("style").ToArray())
        {
            style.Remove();
        }
        foreach (HtmlNode script in Document.DocumentNode.Descendants("script").ToArray())
        {
            script.Remove();
        }

その後、 //text() を使用してすべてのテキストノードを取得しようとしています。

foreach (HtmlTextNode node in Document.DocumentNode.SelectNodes("//text()"))
        {
            TempString.AppendLine(node.InnerText);
        }

ただし、テキストだけでなく、多数の /r /n 文字も取得しています。

この点に関して、少しガイダンスが必要です。

4

2 に答える 2

2

最終的な文字列の文字が問題である場合\r \nは、事後にそれらを削除することができます:

TempString.ToString().Replace("\r", "").Replace("\n", "");
于 2013-10-13T12:24:30.340 に答える