Кодировка HtmlAgilityPack UTF-8 - PullRequest
0 голосов
/ 15 марта 2012

Я использую HtmlAgilityPack для анализа html-документа, но не могу получить правильный html.

Например:

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. У меня есть другой HTML-документ с кодировкой UTF-8, и у него нет проблем.

1 Ответ

0 голосов
/ 15 марта 2012

В тексте li имеется <, в результате чего mV и т. Д. ... интерпретируются как атрибуты элемента 0.05% (он интерпретируется как элемент, поскольку существует < предшествует этому).

Вы должны экранировать их до &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>";
...