像对象一样的数组中的XmlDocument

时间:2013-11-07 13:54:00

标签: c# list microsoft-metro xmldocument

我用谷歌搜索了几个小时,没有找到任何东西。

我正在尝试制作一个从在线XML服务中读取的Metro应用程序。获取XML不是问题,我只是这样做 - >

var xmlDoc = await XmlDocument.LoadFromUriAsync(new Uri(url));

但现在的问题是,如何将其转换为列表或类似的可读内容。

我想要阅读的XML非常庞大,我不想通过foreach浏览所有节点。

包含所有节点和innerText作为Value的简单数组/列表将非常棒。

这可能吗?如果是的话......怎么样?

我的XML结构是这样的 - >

<?xml version="1.0" encoding="UTF-8"?>

<city>

...   <credit>

...

</credit>

<forecast>

<date value="2013-11-08">

...

<time value="06:00">

...

</time>

<time value="11:00">

...

</time>

<time value="17:00">

...

</time>

<time value="23:00">

...

</time>

...

</date>

<date value="2013-11-09">

<same content here>

</date>

<date value="2013-11-09">

<same content here>

</date>

</forecast>

</city>

正如您所看到的...... XML中有很多信息,我几乎需要一切。在Actionscript中我会用XMLList实现它,并使用内容制作3个日期标签列表,所以我可以使用

xmllist1.time[0] - xmllist1.time[3] xmllist2.time[0] - xmllist2.time[3] xmllist3.time[0] - xmllist3.time[3]

获取我的数据。

现在我想在C#中使用这个XMLList ...我希望它有可能...... Thx 4帮助

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您想要从xml解析“城市”项目列表。 我使用XDocument和Linq做类似的事情,它应该适合你:

        XDocument xdoc = <add your code to get xml from url>;
        var ns = xdoc.Root.GetDefaultNamespace();
        var cityList = from query in xdoc.Descendants(ns + "city")
                         select new CityItem
                         {
                             Date = (string)query.Element(ns + "date").Attribute("value").Value,
                             Time = (string)query.Element(ns + "time").Attribute("value").Value
                         };
        public class CityItem
        {
            public string Date {get;set;}
            public string Time {get;set;}
        }