2016-10-13 10 views
1

私はhtmlウェブサイトからプレーンテキストを取得しようとしていますが、プレーンテキストではなくhtmlコードを取得しています。< b> hello </b> < p> its me </p>私。どんな助けでも大歓迎です!ここに私のコードです。htmlをプレーンテキストのC#に変換する方法は?

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.IO; 
using System.Linq; 
using System.Net; 
using System.Text.RegularExpressions; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApplication2 
{ 
    public partial class Form1 : Form 
    { 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 

     HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(""https://www.dailyfx.com/real-time-news"); 
     myRequest.Method = "GET"; 
     WebResponse myResponse = myRequest.GetResponse(); 
     StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8); 
     string result = sr.ReadToEnd(); 




     textBox1.Text = result; 
     sr.Close(); 
     myResponse.Close(); 
    } 
    } 
} 
+3

プレーンテキストとはどういう意味ですか? –

+3

ちょうどHtmlAgilityPackを使うと、 'GetString'のようなものを使うことができます – Alex

+0

それをダウンロードする必要がありますか、それとも標準のC#ライブラリが付属していますか? –

答えて

0

短い答え:ません直接変換。あなたはウェブサイトを "スクリーンスクレイプ"しています。結果の文字列を解析して、必要なものを抽出します(または、問題のウェブサイトで提供されているAPIがあるかどうかを確認することをお勧めします)。

ウェブサイトはプレーンテキストではなくHTMLで表示されます。結果を文字列として戻しても、目的のテキストを抽出するために解析する必要があります。実際の抽出は、達成しようとしているものに大きく依存します。ウェブサイトが適切なXHTMLであれば、XMLとしてXDocumentにロードし、ツリーをたどって必要な情報を得ることができます。これは、あなたに役立つ

1
You can use regex expressions for this. 

Regex.Replace(htmltext, "<.*?>", string.Empty); 

Eg:- String htmltext = "string html = "<p>Test1 <b>.NET</b> Test2 Test3 
         <i>HTML</i> Test4.</p>";" 
     Output will be :- Test1 Test2 Test3 Test4. 

- それ以外の場合は、HTMLAgilityPackは(それがGetStringよりも少し仕事だ...コメントをほのめかしているほど魔法ではない)助けになることがあり、コメントの一つで示唆されました。 http://www.codeproject.com/Tips/136704/Remove-all-the-HTML-tags-and-display-a-plain-text

関連する問題