处理无效 XML 的建议方法

2024-02-09

我正在尝试使用 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>

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

我也曾想过寻找&字符并将其替换为&amp;但它不会转义任何用户输入,包括< and >对每个无效的 xml 字符进行搜索和替换听起来也是一个坏主意。

关于如何处理无效的 xml 文档有什么建议吗?


首先拒绝将这些文档称为“XML”——它们不是 XML。

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

如果您的供应商认为他们正在向您发送 XML,请纠正它们。几乎是 XML 并没有帮助。这就像向您发送无法编译的 Java 代码一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理无效 XML 的建议方法 的相关文章

随机推荐

  • 正则表达式获取年份的最后两位数

    我必须使用正则表达式才能获取年份的最后两位数字 但前提是存在 4 位数字 我有以下正则表达式 当有 4 位数字时 它可以完美工作 示例 2014 14 2 然而 我需要这个只有在出现 4 位数字时才起作用 当只有 2 位数字存在时 我在清空
  • lupdate 和条件包含在 .pro 文件中

    我有一个包含条件包含的 pro 文件 如下所示 contains CONFIG embedded SOURCES a cpp HEADERS a h else SOURCES b cpp HEADERS b h 当我从终端运行 lupdat
  • 臭名昭著的 Apache 错误“父进程:子进程已退出,状态为 3221225477”

    我读过一些与臭名昭著的 Apache 错误相关的问题和回复 Apache error notice Parent child process exited with status 3221225477 Restarting 但到目前为止 没
  • EditorJS 总是呈现两个编辑器

    我正在尝试使用 EditorJS 的编辑器 一切工作正常 除了当我第一次加载页面时 它会在开始时初始化两个编辑器 并在每次重新加载页面时不断附加新编辑器 但它们都在里面 div div 分区我有什么遗漏的吗 react etc import
  • Webpack Uglify CSS 中的错误

    我强调要让 Uglify 与我的项目一起工作 以前我使用过 Uglify 并且没有出现问题 但现在我认为这与 SASS 相关 ERROR in css loader sass loader app scss global header sc
  • 替换表达式树中的类型

    我正在努力修改表达式树 我简化了示例 以便更容易在此处显示 让我们从两个类开始 public class Filter public string FilterableProperty1 get set public string Filt
  • 选择 * 与选择列

    如果我只需要 2 3 列并且我查询SELECT 与在选择查询中提供这些列不同 更多 更少 I O 或内存是否会导致性能下降 如果我在不需要的情况下选择 则可能会出现网络开销 但是在选择操作中 数据库引擎是否总是从磁盘中提取原子元组 或者只提
  • CMake:如何在 Visual Studio 项目中的“头文件”中显示标题?

    我用 C 创建了一个简单的库项目 并添加了 CMake 文件以自动生成 Visual Studio 项目 我的小项目只包含 2 个文件 include testproject testproject h src testproject cp
  • C# 自增运算符错误:操作数语法不正确?

    我正在看the docs https learn microsoft com en us dotnet csharp language reference operators increment operator并尝试了解操作员的实际工作原
  • ASP.Net WebAPI 区域支持

    我正在尝试向我的 asp net 4 RC 站点添加一些 WebAPI 支持 并希望将其放入一个区域中 我看到有人设法让它在测试版上运行 here http netmvc blogspot co uk 2012 03 aspnet mvc
  • 如何测试 Eclipse 包中的 URL 是否是目录?

    我正在尝试从插件内置的包的内容中填充目录 以下代码在捆绑包是文件系统时有效 但在捆绑包是 JAR 时失败 测试 URL 是否为目录的最佳方法是什么 或者是否有一种完全不同的 更好的方法来从资源包创建文件结构 static private v
  • Android Fragment:使用哪个生命周期方法来调用Web服务

    我正在开发一个涉及多个片段的应用程序 在每个片段中 我必须调用 Web 服务来获取数据 目前我正在从以下位置调用网络服务onCreateView 片段的方法 我收到的问题是 每当 Web 服务调用正在进行时 如果设备方向发生更改 则新的 W
  • 为什么 Azure 部署需要这么长时间?

    我试图理解为什么将一个小型应用程序部署到 Azure 需要 20 60 分钟 使用配置 包上传方法 而不是从 VS 内 我已读完这个情况 http msdn microsoft com en us library ff803362 aspx
  • Kotlin 相当于 Java8 中的Optional::map

    你知道是否有捷径 if x null null else f x 对于JavaOptional你可以这样做 x map SomeClass f Kotlin 利用自己的方法来实现这一想法Option 但是有map filter orElse
  • 如何在 C++ 中生成 UUID,而不使用 boost 库?

    我想为我的应用程序生成 UUID 以区分应用程序的每次安装 我想在没有 boost 库支持的情况下使用 C 生成此 UUID 如何使用其他开源库生成 UUID 注 我的平台是windows 如果您使用现代 C 这就可以了 include
  • 折旧警告不允许在 AZURE 上部署应用程序,

    将应用程序部署到 AZURE 时 我收到以下警告 节点 6568 DEP0064 DeprecationWarning tls createSecurePair 是 已弃用 请改用 tls Socket 但这不允许我的应用程序启动 Azur
  • 如何检索 PCollection 的内容并将其分配给普通变量?

    我正在将 Apache Beam 与 Python SDK 结合使用 目前 我的管道读取多个文件 解析它们并从其数据生成 pandas 数据帧 然后 它将它们分组为single数据框 我现在想要的是检索这个单一的胖数据帧 将其分配给一个普通
  • 当我什至没有使用 Bolts 时,为什么会收到有关 Bolts 框架和 FacebookSDK 的错误?

    出现此错误 framework not found Bolts for architecture x86 64 逐字逐句地遵循 Facebook 的指南 但我能想到的唯一发生链接错误的地方是在框架搜索路径的构建设置中 我目前在应用程序中尝试
  • 如何使用 xargs 复制名称中包含空格和引号的文件?

    我正在尝试复制目录下的一堆文件 其中许多文件的名称中包含空格和单引号 当我尝试串起来时find and grep with xargs 我收到以下错误 find grep FooBar xargs I cp foo bar xargs un
  • 处理无效 XML 的建议方法

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