Html Agility Pack正在截断元标记的值

时间:2011-06-30 21:18:28

标签: c# html-parsing html-agility-pack

我正在使用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”处截断值:

“shop:Baby | category:Category | category:Babies”

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您使用"作为使用相同字符分隔的属性值内的数据。您点击的第一个结束属性值。您需要使用实体来表示它们:&quot;

答案 1 :(得分:0)

html实际上是无效的。您复制的字符串(未添加C#)是:

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

所以属性'value'在Baby完成,r之后有一个“(双引号)等等......