以下 XML 无法从 Delphi 中读取,因为它包含无效的 ° 符号:
V1: <Item Id="1" Description="90° Hinge"/>
似乎 Delphi 不识别在 XML 中执行此操作的“标准”方式:
V2: <Item Id="1" Description="90° Hinge"/>
Delphi 确实似乎可以处理这个:
V3: <Item Id="1" Description="90° Hinge"/>
由于我是从 RESTful Web 服务获取数据,所以我没有特别控制传入的 XML 数据包,我只需要能够读取它们。
问题
- 如果 V2 是标准的 XML 方式,那么为什么 Delphi 不支持它?还是有一种我不知道的特殊方法来处理这个问题?
- V1 XML 的格式是否错误?如果是这样,我是否应该请求将 RESTful 接口(interface)更改为以 V3 格式导出 °。
使用 Delphi 2010。如有任何帮助,我们将不胜感激。
最佳答案
Delphi 本身根本不解析 XML。第三方 XML 引擎可以,无论是 MSXML、OpenXML、AtomXML 等。TXMLDocument 组件和支持接口(interface)只是一个包装器框架,大部分解析由其他人完成。
V1 可能有也可能没有畸形。这取决于 XML 的实际字符集。
V2其实不是标准的。并非所有 XML 引擎都支持它。显然,您在 Delphi 中使用的那个不是。
V3 是标准化的,所有 XML 引擎都支持该语法。
关于xml - 在 Delphi 2010 中从 XML 读取°度数符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017578/