0

次のような行を含む XML ファイルがあります。

<rule pat="&&&&&&&&&&&&&&&(?<B>B) ?(?<AND>&) ?(?<E>E)">

C++ で TinyXML lib を使用してこの XML ファイルを解析しますが、そのような行の 'pat' 属性を取得しようとすると、TinyXML は character の出現を無視するだけであることがわかります&。つまり、TinyXML によって読み取られた結果は次のようになります。

(?<B>B) ?(?<AND>) ?(?<E>E)

すべてが&欠けています!

この char は正規表現パターンの一部であるため、プログラムでさらにエラーが発生します。

この文字&が非常に特殊で、TinyXML が読み取れない理由を知っている人はいますか? スタンドアローンでさえ&却下されますか?

4

3 に答える 3

7

これは、有効なXML ファイルではないためです。&XML の任意の場所に文字を貼り付けることはできません。エンティティでエスケープする必要があります:

&amp;

TinyXML は、有効な XML ファイル (または少なくともほとんど有効なファイル) のみを読み取ります。

<同様に、 and>文字もエスケープする必要があり&lt;ます&gt;

于 2012-01-27T22:36:29.150 に答える
2

これは整形式の XML ではありません。文字が必要な場合&は、 を入れる必要があります&amp;

于 2012-01-27T22:37:39.303 に答える
1

ではxml、次の&ように表されます。&amp;

于 2012-01-27T22:36:42.270 に答える