【发布时间】:2015-11-03 12:58:38
【问题描述】:
我想将以下 xml 反序列化为自定义类:
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title>test</title>
<description>test</description>
<language>nl</language>
<link>http://www.test.test</link>
<item>
<link>http://www.testlink1</link>
<pubDate>Di, 03 Nov 2015 09:08:44 +0100</pubDate>
<sector>
<entry>a:b</entry>
<entry>a:c</entry>
<entry>a:d</entry>
<entry>a:b</entry>
</sector>
<title>test</title>
<lead><![CDATA[test]]></lead>
<description><![CDATA[test ]]></description>
<images>
<enclosure url="http://test.dll?tem=LTO_IMAGE_DOC&size=1024&doc_id=100782" length="608055" type="image/jpg"/>
</images>
</item>
</channel>
</rss>
这是我的课:
[Serializable]
[XmlRoot("item", IsNullable = false)]
public class CustomRssItem : BaseRssItem
{
[XmlElement("publisher", Namespace = "http://purl.org/dc/elements/1.1/")]
public string Author { get; set; }
[XmlElement("guid", Namespace = "")]
public string Guid { get; set; }
[XmlArray("sector")]
[XmlArrayItem("entry")]
public List<string> Sector { get; set; }
}
如何修改我的类以使用自定义类而不是 List<string>,以便我可以包含我需要对条目元素执行的解析(将字符串与冒号分开)?
我想写 List<string> Sector 而不是 List<GroupEntry> Sector,其中 GroupEntry 将是我的自定义类,其中包含值“a:b”,我可以解析和公开新属性,如 Group 和 Subgroup?
【问题讨论】:
-
不清楚你在问什么。请更具体。
-
创建一个
GroupEntry类? -
我确实创建了 GroupEntry 类,但它没有得到“填充”...
-
xsd 方法是我承认的最佳实践,但它可能会将 GroupEntry 类型生成为字符串而不是复杂类型,因为它无法知道我们试图实现的目标
标签: c# xml xml-deserialization