1

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

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

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

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

我想阅读的 XML 真的很大,我不想用 foreach 遍历所有节点。

一个包含所有节点和 innerText 作为值的简单数组/列表会很棒。

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

我的 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 帮助

4

1 回答 1

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;}
        }
于 2013-11-08T19:30:38.643 回答