gpt4 book ai didi

.net - 如何反序列化带有前缀命名空间但没有 ns 前缀元素的 XML 文档?

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

我有一个来自外部源的 XML 文档。

<?xml version="1.0" encoding="utf-8"?>
<ns0:Info xmlns:ns0="http://www.ZomboCorp.com/">
<Name>Anthony</Name>
<Job>Developer</Job>
</ns0:Info>

我需要将它反序列化为这样的对象。

public class Info
{
public String Name { get; set; }
public String Job { get; set; }
}

按原样使用 Serializer抛出 InvalidOperationException

<Info xmlns='http://www.ZomboCorp.com/'> was not expected.

如果我添加 [XmlElement(Namespace = "http://www.ZomboCorp.com/")]对于类定义,Serializer返回一个新的 Info具有空属性的对象。

最佳答案

您还必须将 XmlElement 属性添加到每个属性,将 Namespace 属性设置为空字符串(因为在您的情况下命名空间不是继承的)。

您对 Info 的定义应如下所示:

XmlRoot(Namespace = "http://www.ZomboCorp.com/")]
public class Info
{
[XmlElement(Namespace = "")]
public String Name { get; set; }
[XmlElement(Namespace = "")]
public String Job { get; set; }
}

然后它将正确反序列化。

关于.net - 如何反序列化带有前缀命名空间但没有 ns 前缀元素的 XML 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/465825/

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