Sam*_*amo 5 c# asp.net-mvc xml-deserialization
在其他示例中,我看到它与我的相似,有一个根节点,然后是一个数组节点,然后是一堆数组项.我的问题是,我的根节点是我的数组节点,所以我看到的示例似乎对我不起作用,我无法更改XML模式.这是XML:
<articles>
<article>
<guid>7f6da9df-1a91-4e20-8b66-07ac7548dc47</guid>
<order>1</order>
<type>deal_abstract</type>
<textType></textType>
<id></id>
<title>Abu Dhabi's IPIC Eyes Bond Sale After Cepsa Buy</title>
<summary>Abu Dhabi's IPIC has appointed banks for a potential sterling and euro-denominated bond issue, a document showed on Wednesday, after the firm acquired Spain's Cepsa in a $5 billion deal earlier this month...</summary>
<readmore></readmore>
<fileName></fileName>
<articleDate>02/24/2011 00:00:00 AM</articleDate>
<articleDateType></articleDateType>
</article>
<article>
<guid>1c3e57a0-c471-425a-87dd-051e69ecb7c5</guid>
<order>2</order>
<type>deal_abstract</type>
<textType></textType>
<id></id>
<title>Big Law Abuzz Over New China Security Review</title>
<summary>China’s newly established foreign investment M&A review committee has been the subject of much legal chatter in the Middle Kingdom and beyond. Earlier this month, the State Council unveiled legislative guidance on…</summary>
<readmore></readmore>
<fileName></fileName>
<articleDate>02/23/2011 00:00:00 AM</articleDate>
<articleDateType></articleDateType>
</article>
</articles>
Run Code Online (Sandbox Code Playgroud)
这是我的班级:
public class CurrentsResultsList
{
public Article[] Articles;
}
public class Article
{
public string Guid { get; set; }
public int Order { get; set; }
public string Type { get; set; }
public string Title { get; set; }
public string Summary { get; set; }
public DateTime ArticleDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是来自外部API的XML响应.
现在你准备好了你的c#课程
现在你可以使用这个:
internal class ParseXML
{
public static xsdClass ToClass<xsdClass>(XElement ResponseXML)
{
return deserialize<xsdClass>(ResponseXML.ToString(SaveOptions.DisableFormatting));
}
private static result deserialize<result>(string XML)
{
using (TextReader textReader = new StringReader(XML))
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(result));
return (result) xmlSerializer.Deserialize(textReader);
}
}
}
Run Code Online (Sandbox Code Playgroud)
你必须使用一些Xml属性,这个代码应该有希望产生你喜欢的xml,希望它有所帮助:
using System;
using System.IO;
using System.Xml.Serialization;
namespace xmlTest
{
class Program
{
static void Main(string[] args)
{
var articles = new Articles();
articles.ArticleArray = new ArticlesArticle[2]
{
new ArticlesArticle()
{
Guid = Guid.NewGuid(),
Order = 1,
Type = "deal_abstract",
Title = "Abu Dhabi...",
Summary = "Abu Dhabi...",
ArticleDate = new DateTime(2011,2,24)
},
new ArticlesArticle()
{
Guid = Guid.NewGuid(),
Order = 2,
Type = "deal_abstract",
Title = "Abu Dhabi...",
Summary = "China...",
ArticleDate = new DateTime(2011,2,23)
},
};
var sw = new StringWriter();
var xmlSer = new XmlSerializer(typeof (Articles));
var noNamespaces = new XmlSerializerNamespaces();
noNamespaces.Add("", "");
xmlSer.Serialize(sw, articles,noNamespaces);
Console.WriteLine(sw.ToString());
}
}
[XmlRoot(ElementName = "articles", Namespace = "", IsNullable = false)]
public class Articles
{
[XmlElement("article")]
public ArticlesArticle[] ArticleArray { get; set; }
}
public class ArticlesArticle
{
[XmlElement("guid")]
public Guid Guid { get; set; }
[XmlElement("order")]
public int Order { get; set; }
[XmlElement("type")]
public string Type { get; set; }
[XmlElement("textType")]
public string TextType { get; set; }
[XmlElement("id")]
public int Id { get; set; }
[XmlElement("title")]
public string Title { get; set; }
[XmlElement("summary")]
public string Summary { get; set; }
[XmlElement("readmore")]
public string Readmore { get; set; }
[XmlElement("fileName")]
public string FileName { get; set; }
[XmlElement("articleDate")]
public DateTime ArticleDate { get; set; }
[XmlElement("articleDateType")]
public string ArticleDateType { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8073 次 |
| 最近记录: |