Webページをプレーンテキストに変換する..?

c# html-agility-pack regex

質問

私は、Webページをプレーンテキストに変換しようとしています。しかし、テーブルに遭遇した場合、私はtdとtrタグも取得しています。これらのテーブルタグを置き換えると、コンテンツの一部を取得できません。

ここに私のコードです

string s = Regex.Replace(htmldoc, "<script.*?</script>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<!--.*?-->", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<style.*?style>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<a.*?a>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<img.*?img>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
s = Regex.Replace(s, "<table.*?table>", "", RegexOptions.Singleline | RegexOptions.IgnoreCase);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(s);
s = doc.DocumentNode.SelectSingleNode("//body").InnerText.Trim();

これを確認して、tdタグとtrタグを取得せずにテーブルから内容を取得する方法を教えてください。

受け入れられた回答

HTML Agilityパックを使用してテーブルを解析する場合、正規表現でHTMLタグを削除する必要はありません。ここでは、HTML Agilityパックを使用してテーブルを解析する良い例がいくつかあります。例: HTMLアジャイルパック - パーステーブル


人気のある回答

本文のInnerText使うことができます:

string html = @"
<html>
    <title>title</title>
    <body>
           <h1> The wheel.</h1>
           Stop reinventing the wheel ! Use powerful APIs 
           for manipulating html docs !
           <h3> I am fine </h3>
           <img src=""da_wheel_in_my_mind.png""/>
    </body>
</html>";

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
string text = doc.DocumentNode.SelectSingleNode("//body").InnerText;

次に、空白と改行を崩壊させたいかもしれません:

string html = @"
<html>
    <title>title</title>
    <body>
           <h1> The wheel.</h1>
           Stop reinventing the wheel ! Use powerful APIs 
           for manipulating html docs !
           <h3> I am fine </h3>
           <img src=""da_wheel_in_my_mind.png""/>
    </body>
</html>";

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
string text = doc.DocumentNode.SelectSingleNode("//body").InnerText;

ただし、この場合、 hello<br>worldhello<i>world</i>などのマークアップはInnerTextによってhelloworld変換され、タグが削除されます。表示はマークアップだけでなく、CSSによって決定されることが多いため、この問題を解決することは困難です。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ