2012-01-27 10 views
0

私のようないくつかの行でXMLファイルを持って読むことができません、次tinyXML libには「&」適切

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

私は、このXMLファイルを解析するために、C++でTinyXML libにを使用しますが、私は "取得しようとすると、そのような行の 'pat'属性を使用すると、TinyXMLは文字のいずれかの出現を無視するだけです。&。すべて&が行方不明と

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

:つまり、TinyXMLで読み取り結果は次のようにすることになります!

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

この文字がなぜ&なのか誰も知りませんか特別なとTinyXMLは読み取れません。スタンドアローンでも&は却下されますか?

+3

XMLの '&'は '&'としてエンコードされます。 [XML Basics](http://www.xmlnews.org/docs/xml-basics.html) – ildjarn

+0

つまり、あなたの前提が間違っています。あなたはXMLファイルを持っておらず、あなたは非XMLファイルを持っています。誰がそれを作り出し、それを修正するように指示します。 –

答えて

7

有効な XMLファイルではないためです。 &の文字をXMLのどこにでも置くことはできません。

&amp; 

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

同様に、と>の文字も&lt;&gt;でエスケープする必要があります。 xml

1

&は整形式XMLではありません&amp;

2

として表現されます。 &文字が必要な場合は、&amp;を入力する必要があります。