我有一个XML文件,其中包含如下几行:
<rule pat="&&&&&&&&&&&&&&&(?<B>B) ?(?<AND>&) ?(?<E>E)">
我使用C ++中的TinyXML库来解析此XML文件,但是当我尝试获取此类行的'pat'属性时,TinyXML原来只是忽略了字符
&
的出现。也就是说,TinyXML读取的结果变为:(?<B>B) ?(?<AND>) ?(?<E>E)
所有
&
都不见了!这个char是我的正则表达式模式的一部分,因此这将导致程序中的进一步错误。
有谁知道为什么这个字符
&
如此特殊,而TinyXML却无法读取?即使是独立的&
也将被解雇? 最佳答案
那是因为那不是有效的XML文件。您不能只是将&
字符粘贴在XML中的任何位置。您必须使用实体对其进行转义:
&
TinyXML将仅读取有效的XML文件(或至少读取大多数有效文件)。
同样,您也需要使用
<
和>
转义<
和>
字符。关于c++ - tinyXML库无法正确读取“&”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9040961/