HtmlAgilityPack UTF-8 кодиране

Използвам 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 кодиране и няма проблем.


person Chani Poz    schedule 15.03.2012    source източник


Отговори (1)


Имате < в текста на 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>";
person Oded    schedule 15.03.2012
comment
благодаря, обяснява се, че проблемът не е свързан с кодирането и това е половин отговор. но: не мога да променя текста, защото го вземам от сайта. така че имаш ли друга идея? - person Chani Poz; 15.03.2012
comment
@Chanipoz - Всъщност не. Ако не получавате валиден HTML, трябва да кажете на доставчика на HTML, че той не е валиден и че трябва да го поправи. - person Oded; 15.03.2012
comment
Това ли е единственият начин? защото не мога да питам доставчика. - person Chani Poz; 15.03.2012
comment
@Chanipoz - Не е валиден HTML. Ако доставчикът твърди, че е така, значи грешат. Освен ръчна промяна на стойностите, не виждам начин да автоматизирам това. - person Oded; 15.03.2012
comment
вижте тази страница: ntecusa.com/product/dsp_unitDetails.cfm?productID=21336 - person Chani Poz; 15.03.2012
comment
@Chanipoz - разбирам разочарованието ти. Нямам какво повече да предложа - опитайте да зададете някои от различните OptionXXX на HtmlDocument преди анализиране - едно от тях може да е от полза. - person Oded; 15.03.2012