我正在嘗試開發Windows Phone 8應用程序(我是wp8開發中的新成員)。反序列化WP8應用程序中的XML
我有一個看起來像這樣的XML文件:
<?xml version="1.0" ?>
<root>
<quotes>
<quote>
<author></author>
<text></text>
<text></text>
<text></text>
</quote>
</quotes>
</root>
這是我的行情類:
[XmlRoot("root")]
public class Quotes
{
[XmlArray("quotes")]
[XmlArrayItem("quote")]
public ObservableCollection<Quote> Collection { get; set; }
}
這是引用類:
public class Quote
{
[XmlElement("author")]
public string author { get; set; }
[XmlElement("text")]
public string text { get; set; }
}
然後我用這個代碼反序列化:
XmlSerializer serializer = new XmlSerializer(typeof(Quotes));
XDocument document = XDocument.Parse(e.Result);
Quotes quotes = (Quotes) serializer.Deserialize(document.CreateReader());
quotesList.ItemsSource = quotes.Collection;
// selected Quote
Quote quote;
public QuotePage()
{
InitializeComponent();
// get selected quote from App Class
var app = App.Current as App;
quote = app.selectedQuote;
// show quote details in page
author.Text = quote.author;
text.Text = quote.text;
}
具有這種結構有一個<text>
部分每飼料在此做工精細。但我有很多的飼料<text>
如果我使用上面的C#代碼,只有第一個<text>
節被解析,其他人被忽略。我需要爲單個XML Feed中的每個<text>
部分創建單獨的List或ObservableCollection。
「這項工作很好,每個飼料有這種結構與一節」 - 你的意思是你有多個引號部分? – Hassan 2013-03-18 15:34:19
顯示'報價'類代碼。 – MarcinJuraszek 2013-03-18 15:49:09
如果您使用您喜歡的結構創建一個類並進行序列化,它會更容易。所以這個字符串將是你的xml所需要的。 – 2013-03-18 15:53:41