tinyXML lib无法正确读取'&'

JXI*_*ITC 0 c++ xml tinyxml

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

<rule pat="&&&&&&&&&&&&&&&(?<B>B) ?(?<AND>&) ?(?<E>E)">
Run Code Online (Sandbox Code Playgroud)

我在C++中使用TinyXML lib来解析这个XML文件,但是当我尝试获得这些行的'pat'属性时,TinyXML就会忽略任何出现的字符&.也就是说,TinyXML读取的结果变成了:

(?<B>B) ?(?<AND>) ?(?<E>E)
Run Code Online (Sandbox Code Playgroud)

全都&失踪了!

这个char是我的正则表达式模式的一部分,所以这将导致我的程序中的进一步错误.

有谁知道为什么这个角色&如此特别而且TinyXML无法阅读?即使是一个独立的人&也会被解雇?

Nic*_*las 7

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

&amp;
Run Code Online (Sandbox Code Playgroud)

TinyXML只会读取有效的XML文件(或者至少是大多数有效的文件).

同样,你需要躲避<>人物也与&lt;&gt;.