我们的一个项目是将我们的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();
}
}
}
答案 0 :(得分:1)
所以我在阅读你的问题后得到的,问题是在c#中解析xml文档。我正在尝试帮助解析第一页(当前硬编码的逻辑),因为xml格式比第二页简单。然后你可以用这个例子来解析第二个xml。我使用linq to xml来解析c#:
中的xmlvoid 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));
}