我在尝试从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;标题它工作正常。我觉得我想要的东西非常简单。任何想法或代码样本来解决这个问题将非常感激。谢谢你提前。
答案 0 :(得分:0)
xmlData
<xml>
元素,因此xmlData.Elements("xml")
将不会返回任何值 - 下没有xml
元素/ em> xmlData
。鉴于它是根,你知道只有一个节点,所以你可以这样做:
var element1 = (string) xmlData.Element("element1");
var element2 = (string) xmlData.Element("element2");
请注意,通过转换为string
而不是使用Value
属性,如果元素不存在,则最终会返回空引用,而不是抛出异常。