我正在使用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”
我做错了什么?
答案 0 :(得分:1)
您使用"
作为使用相同字符分隔的属性值内的数据。您点击的第一个结束属性值。您需要使用实体来表示它们:"
答案 1 :(得分:0)
html实际上是无效的。您复制的字符串(未添加C#)是:
<meta name="productattributes" value="shop: Baby|category: Category|category: Babies" r"us="" exclusives|f...
所以属性'value'在Baby完成,r之后有一个“(双引号)等等......