2012-03-15 24 views
0

HtmlAgilityPackを使用してHTML文書を解析していますが、正しいhtmlを取得できません。HtmlAgilityPack UTF-8エンコーディング

たとえば

string s="<!DOCTYPE html> 
       <li>Voltage: <0.05% + 10 mV 
       (<0.1% + 25 mV for output 2 of E3646/47/48/49A)</li> 
      </html>"; 

HtmlAgilityPack.HtmlDocument doc; 
doc.LoadHtml(s); 

しかし、私は得る:

"<li>Voltage: <0.05% +="" 10="" mv=""></0.05%><0.1% +="" 25="" mv="" for="" output="" 2="" of=""></0.1%></li>" 

の代わりに:

"<li>Voltage: <0.05% + 10 mV (<0.1% + 25 mV for output 2 of E3646/47/48/49A)</li>" 

問題は何ですか?

p.s.私はutf-8エンコーディングを持つ別のHTML文書を持っており、問題はありません。

答えて

0

あなたは0.05%要素の属性(その前<があるように、それは、要素として解釈される)として解釈されるべき... mVなどを引き起こし、liのテキストに<を有します。

&lt;にエスケープする必要があります。

string s="<!DOCTYPE html> 
       <li>Voltage: &lt;0.05% + 10 mV 
       (&lt;0.1% + 25 mV for output 2 of E3646/47/48/49A)</li> 
      </html>"; 
+0

この問題はエンコードには関係なく、これは半分の答えです。しかし:私はサイトからそれを得るので、私はテキストを変更できません。あなたは別のアイデアを持っていますか? –

+0

@Chanipoz - そうではありません。有効なHTMLを取得していない場合は、HTMLが有効でないこと、および修正する必要があることをプロバイダに通知する必要があります。 – Oded

+0

それは唯一の方法ですか?私はプロバイダに尋ねることができないので。 –

関連する問題