从文件或字符串加载Xml会编码单引号

时间:2018-08-20 12:11:47

标签: xml asp-classic chilkat chilkat-xml

当前,我在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>

因此,当我不得不比较摘要值时,它们不再匹配。

我可以采取一种替代方法来替换那些值,但对此我并不满意。也许有更多的属性编码或其他值,这可能会带来更多麻烦。

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

谢谢

1 个答案:

答案 0 :(得分:0)

这是预期的行为。 (它既是HTML实体又是XML特殊字符。请参见http://xml.silmaril.ie/specials.html。从技术上讲,这不是错误的,但是我可以理解为什么可能需要一种行为而不是另一种行为。

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