gpt4 book ai didi

c# - 使用未包装的集合反序列化 XML 时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:09 25 4
gpt4 key购买 nike

使用 C# 反序列化以下 XML 的正确方法是什么?

<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gCal='http://schemas.google.com/gCal/2005'>
<id>http://www.google.com/cal...</id>
<subtitle type='text'>RockPointe Events (1)</subtitle>
<entry>
<id>http://www.google.com/cal...</id>
<published>2011-07-07T21:43:44.000Z</published>
<updated>2011-07-07T21:48:31.000Z</updated>
<title type='html'>Event 1</title>
<summary type='html'>Event 1 Summary</summary>
<content type='html'>Event 1 Content</content>
</entry>
<entry>
<id>http://www.google.com/cal...</id>
<published>2011-07-07T21:43:44.000Z</published>
<updated>2011-07-07T21:48:31.000Z</updated>
<title type='html'>Event 2</title>
<summary type='html'>Event 2 Summary</summary>
<content type='html'>Event 2 Content</content>
</entry>
</feed>

这是我目前的 POCO

    [XmlRoot(ElementName = "feed", Namespace = "http://www.w3.org/2005/Atom")]
public class Feed
{
[XmlElement("subtitle")]
public string Subtitle { get; set; }

[XmlElement("title")]
public string Title { get; set; }

[XmlElement("entry")]
public m_Entry[] Entry { get; set; }

[XmlType(Namespace = "")]
public class m_Entry
{
[XmlElement("title")]
public string Title { get; set; }

[XmlElement("summary")]
public string Summary { get; set; }

[XmlElement("content")]
public string Content { get; set; }

[XmlElement("published")]
public DateTime Published { get; set; }

[XmlElement("updated")]
public DateTime Updated { get; set; }
}
}

当我通过 Deserialize 方法运行它时,我得到了预期的 TitleSubtitle。问题出在 entry 上。我得到了两个条目,但一切都是空的。

null entry

最佳答案

好吧,看起来就像从条目类中删除 XmlType 属性一样简单

[XmlRoot(ElementName = "feed", Namespace = "http://www.w3.org/2005/Atom")]
public class Feed
{
[XmlElement("subtitle")]
public string Subtitle { get; set; }

[XmlElement("title")]
public string Title { get; set; }

[XmlElement("entry")]
public Entry[] Entries { get; set; }

public class Entry
{
[XmlElement("title")]
public string Title { get; set; }

[XmlElement("summary")]
public string Summary { get; set; }

[XmlElement("content")]
public string Content { get; set; }

[XmlElement("published")]
public DateTime Published { get; set; }

[XmlElement("updated")]
public DateTime Updated { get; set; }
}
}

关于c# - 使用未包装的集合反序列化 XML 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9623962/

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