Delphi 与#x0D;及#除息的;

Delphi 与#x0D;及#除息的;,delphi,delphi-xe2,line-breaks,Delphi,Delphi Xe2,Line Breaks,我需要解析从不同来源获得的一些文本/xml文件。现在我发现了一些换行的问题 在一些文件中,我得到了 作为换行符,在其他一些代码中,我只得到 现在我们的delphixe2在&xD,未正确导入 例如: 1. 城市和x0D ;状态 进口结果: 城市 陈述 City ;状态 进口结果: 城市和州 为什么会出现这种情况以及如何解决它?这两个XML文本之间没有区别 指定与和#xD。对于 和 您的XML解析器已损坏,解决方案是修复或替换它 Indy

我需要解析从不同来源获得的一些文本/xml文件。现在我发现了一些换行的问题

在一些文件中,我得到了

作为换行符,在其他一些代码中,我只得到

现在我们的
delphixe2
&xD,未正确导入

例如:
1. <代码>城市和x0D ;状态

进口结果:

城市
陈述

  • City
    ;状态

    进口结果:
  • 城市和州


    为什么会出现这种情况以及如何解决它?

    这两个XML文本之间没有区别<代码> 指定与
    和#xD。对于
    
    
    
    


    您的XML解析器已损坏,解决方案是修复或替换它

    Indy将空格作为字符串写入,如
    #$D
    。看起来完全一样。我认为您没有其他选择可以替代字符串,比如
    StringReplace(您的_text_xml,
;,#13,[rfReplaceAll])
    我已经考虑过这个解决方法,但仍然希望找到更干净的解决方案;-)您使用的是XML解析器吗?我使用ClientDataset并从流中加载XML。@Fantagirocco
    #$D
    是Pascal而不是XML。这里我们讨论的是XML数字字符引用。您的
    StringReplace
    不好。您还可以在
    CDATA
    部分中收集文本。我建议您阅读以下内容:Delphi的TXMLDocument不是使用MSXML吗?@MarcovandeVoort我认为它允许使用不同的XML解析器,但在Windows上,默认情况下您可以使用MSXML。我的猜测是用户没有使用真正的解析器。