[英]wp7 Help Parse Xml
嗨,我正在嘗試從icalander開發的怪異xml文檔中解析一些xml。 我在解析數據時遇到了很多麻煩,但是由於有stackoverflow的人們的幫助,我才能夠解析數據。 現在,我需要一些節點之間的解析幫助。 這是我正在解析的xml文件的鏈接( http://datastore.unm.edu/events/events.xml )
我正在使用Visual Studio 2010中的ivotapp模型創建此應用。 在MainViewModel.cs部分中,我正在修改以下代碼,希望該標簽可以代替“ LineOne”(下面列出的代碼)打印出來。 例如,從上面鏈接的xml文件中,我想要LineOne = Lobo的達人。
我需要幫助找出實現此目的的最佳方法,我需要LineTwo包含日期和時間,而LineThree包含描述。
感謝您的時間和幫助,我們非常感謝!
public void LoadData()
{
var webClient = new WebClient();
webClient.OpenReadAsync(new Uri("http://datastore.unm.edu/events/events.xml"));
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
}
public void webClient_OpenReadCompleted(object sender,
OpenReadCompletedEventArgs e)
{
XDocument unmXdoc = XDocument.Load(e.Result, LoadOptions.None);
this.Items.Add(new ItemViewModel() { LineOne = unmXdoc.ToString(),
LineTwo = "", LineThree = "" });
}
感謝您的幫助!
xml很好,我想您在這里遇到了名稱空間問題,您有兩個選擇,如果您確定不需要xml文件的名稱空間,則將其刪除。 首選選項是使用名稱空間,並為完全限定的元素名稱指定名稱空間。 看這里
private readonly XNamespace dataNamspace = "urn:ietf:params:xml:ns:icalendar-2.0";
public void webClient_OpenReadCompleted(object sender,
OpenReadCompletedEventArgs e)
{
XDocument unmXdoc = XDocument.Load(e.Result, LoadOptions.None);
this.Items = from p in unmXdoc.Descendants(dataNamspace + "vevent").Elements(dataNamspace + "properties")
select new ItemViewModel
{
LineOne = this.GetElementValue(p, "summary"),
LineTwo = this.GetElementValue(p, "description"),
LineThree = this.GetElementValue(p, "categories"),
};
lstData.ItemsSource = this.Items;
}
private string GetElementValue(XElement element, string fieldName)
{
var childElement = element.Element(dataNamspace + fieldName);
return childElement != null ? childElement.Value : String.Empty;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.