Windows Phone 8アプリを開発しようとしています(wp8 devは初めてです)。
次のようなXMLファイルがあります。
<?xml version="1.0" ?>
<root>
<quotes>
<quote>
<author></author>
<text></text>
<text></text>
<text></text>
</quote>
</quotes>
</root>
これは私のQuotesクラスです:
[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;
}
これは、1つのセクションを持つこの構造を持つすべてのフィードで正常に機能し<text>
ます。しかし、私はたくさんの餌を持っています<text>
上記のC#コードを使用すると、最初の<text>
セクションのみが解析され、他のセクションは無視されます。<text>
単一のXMLフィードのセクションごとに個別のListまたはObservableCollectionを作成する必要があります。