2011-07-28 11 views
1

特定の文字のみを解析すると、expatエラーが発生します。他のHTMLコードもちゃんと解析されます。 私はexpat libexpatMT.libのUTF-8ライブラリを使用しています。私はラッパーでcharとstd :: stringを使っています。ワイド文字は使用されません。アンパサンドは、ここに無効なトークンすることができ、なぜそれが& はどちらか動作しません&またはカスタムスペーサーとアンパサンドの交換のようなHTMLエンティティ内でも使われていますので、expatでアンパサンドを解析できません。無効なトークン?

// The ampersand leads to: Expat error: *not well-formed (invalid token)* 
<a href="http://www.myurl.com?a=b&c=d">Link</a> 
<span>Tom & Jerry</span> 
<h1>K&auml;se</h1> 

私は、困惑しています。

提案がありますか?ここではアンパサンドが問題です。

答えて

3

XMLでは、エンティティであってもアンパサンドをエスケープします。したがって、有効な値は<a href="http://www.myurl.com?a=b&amp;c=d">Link</a>
です。正しいWebページがそれを行います。しかし、あなたが作ったエラーに対しては、ブラウザはかなり寛容です。

+0

これは悪いことではありません。私は '& auml; 'のような値を'

Tom&Jerry
'のように'ダブルエスケープ 'する必要があるようです。ありがとう! – Smamatti

+0

そこに何か問題があります。コードに二重変換/アンエスケープがないかどうかを確認してください。 – PhiLho

関連する問題