C# Windows Phone应用程序需要从xml源读入
尝试用XML源中的值填充列表时出现问题 我有一个WebClient来阅读调用下面函数的项目C# Windows Phone应用程序需要从xml源读入,c#,xml,C#,Xml,尝试用XML源中的值填充列表时出现问题 我有一个WebClient来阅读调用下面函数的项目 WebClient client = new WebClient(); client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); Uri url = new Uri("http://www.usi.edu/webservices/iphone/USIINFOterms.xml", Uri
WebClient client = new WebClient();
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
Uri url = new Uri("http://www.usi.edu/webservices/iphone/USIINFOterms.xml", UriKind.Absolute);
client.OpenReadAsync(url);
功能
public void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
try
{
var xml = XDocument.Load(e.Result);
var results = from row in xml.Element("value").Elements() select row;
// now I loop all rows and print the title; of course you canfc
// do other stuff here or combine some data processing with the LINQ above
// - this is up to you
foreach (var result in results)
{
item.ItemLine1 = result.Value;
list.Add(item);
}
}
catch (Exception c)
{
MessageBox.Show(c.Message);
}
}
列表元素返回空引用
下面是XML文件的外观
<data>
<row>
<value>Fall 2013</value>
<value>201410</value>
</row>
<row>
<value>Third Summer 2013</value>
<value>201350</value>
</row>
2013年秋季
201410
2013年第三个夏天
201350
在xml文件方面运气不太好。非常感谢您的帮助。有几点想法:
XDocument.Load(e.Result)
替换为XDocument.Parse(e.Result)
。将is参数视为URI,我假设您已经下载了XML文档。帮你打开那份文件var results = from row in xml.Root.Elements("row")
select row.Element("value");
仅从当前XML元素起作用——它不会扫描整个XML文档树。要扫描整个树,可以使用。或者,为了更精确地拾取所需的元素,请使用上面的模式——从第一个级别拾取元素,然后深入到下一个级别这起作用并消除了空引用错误;但是,通过这些结果的循环似乎没有触发。考虑在调试器中查找LINQ表达式的部分返回的内容,例如,XML.ROOT元素(“ROW”)返回什么内容?还要注意,我用xml.Root.Elements()替换了代码中的xml.Elements()。当打印出xml.Root.Elements(“行”)时,我得到了这样一个结果:线程“”(0xe3a004e)已退出,代码为0(0x0)。线程“”(0xea1005a)已退出,代码为0(0x0)。