0

我有一个 XML 文件,其中包含如下几行:

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

我在 C++ 中使用 TinyXML 库来解析这个 XML 文件,但是当我尝试获取此类行的 'pat' 属性时,TinyXML 原来只是忽略任何出现的 character &。也就是说,TinyXML 读取的结果变成了这样:

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

全部&失踪!

这个字符是我的正则表达式模式的一部分,所以这会导致我的程序出现进一步的错误。

有谁知道为什么这个字符&如此特殊而 TinyXML 无法阅读?连一个独立的人&都会被解雇?

4

3 回答 3

7

那是因为那不是一个有效的XML 文件。您不能只&在 XML 中的任何位置粘贴一个字符。你必须用实体来逃避它:

&amp;

TinyXML 只会读取有效的 XML 文件(或至少大部分有效的文件)。

同样,您也需要使用and转义<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 回答