处理无效XML的建议方法

nic*_*ick 3 xml delphi delphi-xe2

我正在尝试使用Delphi XE2将程序与第三方服务集成.我遇到的问题是该服务没有转发他们发送给我的XML文档中的任何值.

这是他们的"示例"xml文档之一

<plans type="array">
  <plan>
    <id type="integer">1</id>
    <series-title>A New Plan</series-title>
    <dates>January 16 & 17, 2010</dates>
   <plan-title>A New Plan For Your Family</plan-title>
 </plan>
 ...
</plans>
Run Code Online (Sandbox Code Playgroud)

我最初的计划只是将所有数据包装在CDATA标签中,但这似乎不是一个理想的解决方案.

我还考虑过搜索&角色并替换它,&amp;但它不会逃脱任何用户输入,包括<并且>对每个无效的xml角色进行搜索和替换听起来也是个坏主意.

关于如何处理无效的xml文档的任何建议?

Mic*_*Kay 13

首先拒绝将这些文档称为"XML" - 它们不是XML.

说服您的供应商,许多人已采用XML并从中获益,如果他们也这样做,那将是一个好主意.

如果您的供应商认为他们向您发送XML,请将其正确.几乎是XML并没有帮助.这就像发送无法编译的Java代码.

  • 完善.对于所有未来的读者:XML已成为多年的标准.几乎没有任何借口可以发送垃圾并将其称为XML. (4认同)

Joh*_*ers 6

无效的XML文档无效.处理它们的正确方法是显示一条清晰的错误消息,让让你发送"XML"的人修复他们的错误.