2011-06-30 5 views
0

HTMLの解析にHtml Agility Packを使用していますが、フォーマットの悪いメタタグに問題があります。Html Agility Packでメタタグの値が切り捨てられています

を考えると、このメタタグ:私は呼ん

"<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... 

だから、属性valueが赤ちゃんに終了し、そこにある"(二重引用符が)など、Rの後に...

+0

これは私のHTMLではないため、解析するための回避策を見つけ出す必要があります。 htmlはtoysrus.comから来ています。 – rboarman

関連する問題