我有一个XML文件,其中有几行代码,如下所示:
<rule pat="&&&&&&&&&&&&&&&(?<B>B) ?(?<AND>&) ?(?<E>E)">我在C++中使用C++库来解析这个XML文件,但是当我试图获得这些行的'pat‘属性时,TinyXML却忽略了字符&的任何出现。也就是说,TinyXML读取的结果类似于:
(?<B>B) ?(?<AND>) ?(?<E>E)所有&都不见了!
这个字符是我的正则表达式模式的一部分,因此这将导致程序中的进一步错误。
有没有人知道为什么&这个角色如此特殊,和TinyXML就不能阅读?即使是一个独立的&也会被解雇?
发布于 2012-01-27 22:36:29
这是因为这不是一个有效的XML文件。您不能只将一个&字符放在XML中的任何位置。你必须用实体来逃避:
&TinyXML只读取有效的XML文件(或者至少大部分是有效的)。
同样,您也需要用<和>来转义<和>字符。
发布于 2012-01-27 22:37:39
这不是格式良好的XML。如果您想要一个&字符,您需要放置&。
发布于 2012-01-27 22:36:42
在xml中,&表示为&
https://stackoverflow.com/questions/9040961
复制相似问题