gpt4 book ai didi

.net - XmlDocument 加载与正确引用的 LoadXml

转载 作者:数据小太阳 更新时间:2023-10-29 02:54:51 26 4
gpt4 key购买 nike

我发现 XmlDocument Load( ) 和 LoadXml( ) 在 .NET 2.0 中的工作方式有所不同。给出下面的 XML 文档(注意使用右引号,ascii 代码 146):

<?xml version="1.0" encoding="utf-8"?>
<nodes>
<node>Some Data ’</node>
</nodes>

为什么当作为字符串传入时使用 LoadXml( ) 可以正常加载,但如果作为文档传入 Load( ) 则加载失败。 IE。其他 XML 编辑器也不会加载和显示此文件。

简化的代码示例:

[WebMethod]
public bool SubmitData(string xmlDoc)
{
try
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlDoc);
}
catch
{
return false;
}

return true;
}

我知道代码很糟糕,但这只是为了演示问题。如果字符串“xmlDoc”不是合法的 xml 文档,那么我试图让它失败。

我无法控制发送给我的 XML 的内容。我刚刚收到它并通过网络服务使用它。显然,调用它的人正在从 Word 文档中复制和粘贴数据。我也没有设计这个,但我一直在维护它。 :)

最佳答案

区别在于编码。从文件加载时,将应用 utf-8 解码,并且您的代码 146 在您的情况下可能不是有效的 utf-8。 LoadXml 忽略编码,因为 .Net 字符串不需要解码。因此,您的特殊字符是有效字符,一切都很好。

关于.net - XmlDocument 加载与正确引用的 LoadXml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6192486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com