我用谷歌搜索了几个小时,没有找到任何东西。
我正在尝试制作一个从在线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帮助
答案 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;}
}