试图在xaml中解析信息

时间:2013-12-05 23:48:12

标签: c# xaml

我们的一个项目是将我们的iPhone应用程序转移到Windows手机中。因为直到大约5天前我对xaml一无所知,所以我想我会做志愿者并尝试学习一些东西。

下面的第一个链接是主页面的xml

下面的第二个链接是我在点击学期/学期时所期望的。

然后在这些链接下面是我已经完成的代码......

我的问题是我有点嚼得比我嚼得多。我真的不明白如何获取这些信息。我在MSDN上阅读了xaml教程,但它似乎并没有完全帮助我。所以我在我的MainPage()方法中注释了我所拥有的东西,并在术语/学期中进行了硬编码。这对我来说并没有多大帮助,因为它需要来自xaml。我只是想在我的Windows应用程序上看到一些看起来相似的进展。

如何解析链接中的信息?我只需要在正确的方向上轻微推动,或者可能是某个人知道的链接有一些与之相关的良好的xaml解释。到目前为止,我已经阅读了很多内容,但它没有多大帮助。

http://www.usi.edu/webservices/iphone/USIINFOterms.xml

http://www.usi.edu/webservices/iphone/USIINFO201310.xml

namespace PhoneApp1
{
public partial class MainPage : PhoneApplicationPage
{

    public class Item
    {
        public string ItemLine1 { get; set; }
        public string ItemLine2 { get; set; }
    }
    // Constructor
    public MainPage()
    {
        InitializeComponent();

        PageTitle.Text = "Terms";
        List<Item> list = new List<Item>();
        Item item = new Item();
        item.ItemLine1 = "Third Summer 2014";
        item.ItemLine2 = "Classes";
        list.Add(item);
        item = new Item();
        item.ItemLine1 = "Second Summer 2014";
        item.ItemLine2 = "Classes";
        list.Add(item);
        item = new Item();
        item.ItemLine1 = "First Summer 2014";
        item.ItemLine2 = "Classes";
        list.Add(item);
        item = new Item();
        item.ItemLine1 = "Spring 2014";
        item.ItemLine2 = "classes";
        list.Add(item);
        item = new Item();
        item.ItemLine1 = "Fall 2013";
        item.ItemLine2 = "Classes";
        list.Add(item);

        Dispatcher.BeginInvoke(new Action(() => ListBox1.ItemsSource = list));

        //WebClient wc = new WebClient();
        //wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
        //wc.DownloadStringAsync(new Uri("http://www.usi.edu/webservices/iphone/USIINFOterms.xml"));
    }
    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {

    }
    void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        ApplicationTitle.Text = e.Result;
    }
    private void ListBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (sender != null) PageTitle.Text = sender.ToString();
        if (e != null) PageTitle.Text = e.AddedItems.Count.ToString();
        IEnumerator ie = e.AddedItems.GetEnumerator();
        ie.MoveNext();
        if (e != null) ApplicationTitle.Text = ie.Current.ToString();
    }
}

}

1 个答案:

答案 0 :(得分:1)

所以我在阅读你的问题后得到的,问题是在c#中解析xml文档。我正在尝试帮助解析第一页(当前硬编码的逻辑),因为xml格式比第二页简单。然后你可以用这个例子来解析第二个xml。我使用linq to xml来解析c#:

中的xml
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    XDocument doc = XDocument.Parse(e.Result);
    List<Item> list = new List<Item>();
    foreach (var x in doc.Descendants("row"))
    {
        var values = x.Elements("value").ToList();
        var item = new Item();
        item.ItemLine1 = values[0].Value;
        item.ItemLine2 = values[1].Value;
        list.Add(item);
    }
    Dispatcher.BeginInvoke(new Action(() => ListBox1.ItemsSource = list));
}