在Window 7 Phone上从Root返回XML数据

时间:2011-09-16 22:45:26

标签: c# xml windows-phone-7

我在尝试从XML文件返回值时遇到困难。以下是XML的示例:

<xml>
  <item1>Whatever</item1>
  <video>
    <caption>Video Title</caption>
    <width>1280</width>
    <height>720</height>
  </video>
  <element1>Results One</element1>
  <element2>Results Two</element2>
</xml>

我正在调用这样的数据:

 XElement xmlData = XElement.Parse(e.Result);
 var list = new List<VideoUrl>();
 foreach (XElement item in xmlData.Elements("xml"))
 {
 var element1 = item.Element("element1").Value;
 var element2 = item.Element("element2").Value;

 list.Add(new VideoUrl
 {
    etc...
 });

然后将数据分配给列表框以返回值。问题是我试图返回XML项“element1”和“element2”但是当我运行模拟器时没有返回任何内容。如果我更改代码以返回视频&gt;标题它工作正常。我觉得我想要的东西非常简单。任何想法或代码样本来解决这个问题将非常感激。谢谢你提前。

1 个答案:

答案 0 :(得分:0)

xmlData <xml>元素,因此xmlData.Elements("xml")将不会返回任何值 - 没有xml元素/ em> xmlData。鉴于它是根,你知道只有一个节点,所以你可以这样做:

var element1 = (string) xmlData.Element("element1");
var element2 = (string) xmlData.Element("element2");

请注意,通过转换为string而不是使用Value属性,如果元素不存在,则最终会返回空引用,而不是抛出异常。