Html Agility Pack усекает значение метатега - PullRequest
0 голосов
/ 01 июля 2011

Я использую Html Agility Pack для анализа html-кода и у меня возникла проблема с плохо отформатированным метатегом.

Учитывая этот метатег:

"<meta name=\"productattributes\" value=\"shop: Baby|category: Category|category: Babies\" r\"us=\"\" exclusives|family:=\"\" strollers|name:=\"\" baby=\"\" trend=\"\" expedition=\"\" elx=\"\" travel=\"\" system=\"\" stroller=\"\" -=\"\" everglade|price:=\"\" 239.99\"=\"\">" 

Когда я звоню:

HtmlNode productAttributes = hap.DocumentNode.SelectSingleNode("//meta[@name='productattributes']");

var productAttributesStr = productAttributes.GetAttributeValue("value", "");

Получившийся productAttributesStr заканчивается значением, усеченным до \ "r":

"магазин: Baby | категория: категория | категория: дети"

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 01 июля 2011

Вы используете " в качестве данных внутри значения атрибута, разделенного тем же символом. Первое нажатие завершает значение атрибута. Вы должны представлять их, используя сущности: &quot;

0 голосов
/ 01 июля 2011

HTML фактически недействителен. Скопированная строка (без добавления C # \):

<meta name="productattributes" value="shop: Baby|category: Category|category: Babies" r"us="" exclusives|f...

Итак, атрибут 'value' заканчивается в Baby, после r и т. Д. Стоит "(двойная кавычка) ...

...