2011-06-30 47 views
0

我使用Html Agility Pack來解析某些html,並且遇到格式不正確的元標記問題。Html Agility Pack正在截斷元標記的值

鑑於此meta標籤:

"<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」被截斷的值結束了:

「店:嬰兒|分類:分類|分類:嬰兒「

我在做什麼錯?

回答

1

您正在使用"作爲以相同字符分隔的屬性值內的數據。您點擊的第一個結束屬性值。您需要使用實體來表示它們:&quot;

+0

這不是我的html,所以我需要找出一個解決方法來解決它。 html來自toysrus.com。 – rboarman

+0

在嘗試解析錯誤之前,您必須編寫自定義修復例程來糾正錯誤。 (或者讓供應商在源頭修復它)。 – Quentin

0

該html實際上是無效的。複製(不含C#\串「加)是:

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

所以屬性‘價值’在結束寶貝,有一個」在後R(雙引號),等等

+0

這不是我的html,所以我需要找出一個解決方法來解析它。 html來自toysrus.com。 – rboarman