我正在尝试序列化一些XML。通常,我只是创建一个类并使用System.Xml.Serialization.XmlSerializer,但是,在这种情况下,存在各种问题,例如由于rel =',只有一些链接标记不同。
所以,我不确定如何序列化它并为此创建类。有任何想法吗?以下是XML的示例:
<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.w3.org/2005/Atom">
<id>tag:api.microsoft.com,2005:search/foo</id>
<title>foo - microsoft Search</title>
<link type="application/atom+xml" rel="next" href="http://api.microsoft.com/search?page=2&q=foo" />
<link type="application/atom+xml" rel="self" href="http://api.microsoft.com/search?page=1&q=foo&since_id=1286331268264" />
<link type="application/atom+xml" rel="refresh" href="http://api.microsoft.com/search?q=foo&since_id=1286331268264" />
<link type="application/atom+xml" rel="after" href="http://api.microsoft.com/search?q=foo&after_id=1286322320913" />
<opensearch:totalResults>1173</opensearch:totalResults>
<opensearch:itemsPerPage>20</opensearch:itemsPerPage>
<updated>2010-10-06T02:14:28Z</updated>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Comment on Eating in New Mexico Day 1 & 2 by Tricia</title>
<link href="http://zmommyt.wordpress.com/2007/08/28/eating-in-new-mexico-day-1-2/#comment-126" type="text/html" rel="alternate" />
<published>2007-08-29T01:52:00Z</published>
<id>http://zmommyt.wordpress.com/2007/08/28/eating-in-new-mexico-day-1-2/#comment-126</id>
<updated>2007-08-29T01:52:00Z</updated>
<language xmlns='http://api.microsoft.com/ns/search-0#results'>blog</language>
<category xmlns='http://api.microsoft.com/ns/search-0#results'>blog</category>
<abstract xmlns='http://api.microsoft.com/ns/search-0#results'>>
<p>You’re making me hungry for green chile! I told my
farmer last week that I was already missing it - unfortunately,
his chiles won’t be ripe... ...Sigh… I love
that first picture! What great pictures. Comment on Eating in
New Mexico Day 1 & 2 by Tricia</p>
</abstract>
</entry>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Comment on Eating in New Mexico Day 1 & 2 by Tricia</title>
<link href="http://zmommyt.wordpress.com/2007/08/28/eating-in-new-mexico-day-1-2/#comment-126" type="text/html" rel="alternate" />
<published>2007-08-29T01:52:00Z</published>
<id>http://zmommyt.wordpress.com/2007/08/28/eating-in-new-mexico-day-1-2/#comment-126</id>
<updated>2007-08-29T01:52:00Z</updated>
<language xmlns='http://api.microsoft.com/ns/search-0#results'>blog</language>
<category xmlns='http://api.microsoft.com/ns/search-0#results'>blog</category>
<abstract xmlns='http://api.microsoft.com/ns/search-0#results'>>
<p>You’re making me hungry for green chile! I told my
farmer last week that I was already missing it - unfortunately,
his chiles won’t be ripe... ...Sigh… I love
that first picture! What great pictures. Comment on Eating in
New Mexico Day 1 & 2 by Tricia</p>
</abstract>
</entry>
</feed>
答案 0 :(得分:2)
如果您将XmlElementAttribute应用于您的链接集合属性,那么XmlSerializer会将它们反序列化为有序集合。
[XmlRoot(Namespace = "http://www.w3.org/2005/Atom")]
public class feed
{
[XmlElement("link")]
public link[] link { get; set; }
}
public class link
{
[XmlAttribute]
public string type { get; set; }
[XmlAttribute]
public string rel { get; set; }
[XmlAttribute]
public string href { get; set; }
}