【问题标题】:Loading Xml from a file or a string encodes single quotes从文件或字符串加载 Xml 对单引号进行编码
【发布时间】:2018-08-20 12:11:47
【问题描述】:

目前我在 chilkat 中加载 xml 字符串(也测试加载文件)时遇到问题。问题是加载在某些属性中有单引号的 xml 字符串。 Chilkat 自动对它们进行 HTML 编码。

例如当我加载以下字符串时:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <ds:Reference URI="#xpointer(//*[@authenticate='true'])" />
</root>

Chilkat 在使用 .GetXml() 时返回此内容:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <ds:Reference URI="#xpointer(//*[@authenticate=&apos;true&apos;])" />
</root>

所以当我必须比较摘要值时,它们不再匹配。

我可以制定一个解决方法来替换这些值,但我对此并不满意。也许属性或其他值的编码更多,这可能会带来更多麻烦。

有人知道这是否是故意的,为什么,或者可能只是一个错误。是否有我必须设置但我没有找到的属性?

谢谢

【问题讨论】:

  • 您可以使用 MSXML 而不是第三方组件吗?
  • 如果 chilkat 没有办法,也认为这是一种解决方案。谢谢

标签: xml asp-classic chilkat chilkat-xml


【解决方案1】:

这是预期的行为。 (它既是一个 HTML 实体又是一个 XML 特殊字符。请参阅http://xml.silmaril.ie/specials.html)这在技术上并不正确,但我可以理解为什么一种行为可能优于另一种行为。

无论如何,如果您对 XML 进行散列处理并与原始文件进行比较,您真的不想加载 XML 并从 DOM 样式解析器重新发出。空格、缩进和其他 XML 特殊字符可能不同。如果您真的想比较散列,您需要准确的 XML —— 这意味着规范化。您可以使用 Chilkat 规范化 XML。例如,将 XML 复制到此 online tool 以生成规范化的 XML 以及进行规范化的代码。

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 2011-06-05
    相关资源
    最近更新 更多