是否有任何方法可以从XML文件未经转换的XML文件获得 r(运输返回)



XML规范指出,这必须是处理任何"外部解析实体"的行为。但这也适用于元素内部的CDATA部分吗?为什么?是否有任何方法可以通过在解析器代码中添加1/2条件来使 r不转化,而不是将r更改为

确实如此。为什么?它是为了简化将从XML文件处理输出的应用程序的寿命 - 他们根本不必担心新线的格式,增加了应用程序的兼容性(考虑Linux和Windows之间简单文本编辑器的兼容性 - 它们几乎几乎是始终错误地在Windows中显示文件,通常是单行)。

当然,如果您出于任何原因需要 r不转化,则可以简单地进行任何现有的XML解析器实现并进行修改。在tinyxml中,您需要修改tixmlbase :: readtext()函数,或者可以抓住它的较旧版本,因为它过去使whitespace完好无损。

另一方面,从设计的角度来看,只能通过字符替换功能运行解析器,然后将所有" n"替换为" r n"。

当然最好的是只使用输出,现在我无法想象需要任何需要的情况。

cdata并未将字符数据命名为一无所有。处理您情况的唯一优雅方法是编码为基础64。

base64在64个可打印字符中编码所有255个可能的字符。在64个选项中获得255种可能性会使文本更大,但这将是您唯一的选择,除了将XML布局更改为

之类的东西
<TEXT>
  <CHAR>13</CHAR>
  <CHAR>255</CHAR>
</TEXT>

,但我认为更糟糕的是您现在得到的&#13;

http://www.ibm.com/developerworks/xml/library/x-cdata/访问此网站以获取有关XML中二进制数据的更多信息。

希望它对您有帮助。

最新更新