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