迭代重复的xml元素

时间:2012-09-23 17:13:27

标签: c# .net xml windows-phone-7 xml-parsing

我有一个这样的XML文档:

  <author>someone</author> 
  <category>Severe Disruption - 5 hours</category> 
  <category>Roadworks</category>
  <pubDate>Sun, 23 Sep 2012 05:07:39 BST</pubDate> 

我现有的代码就是这样:

  _xml = XElement.Parse(e.Result);
                highwaysResults.Items.Clear();
                foreach (XElement value in _xml.Elements("channel").Elements("item"))
                {
                    highwaysFeedItem _item = new highwaysFeedItem();
                    _item.Title = value.Element("title").Value;
                    _item.Description =    Regex.Replace(value.Element("description").Value,
                    @"<(.|\n)*?>", String.Empty);
                    _item.PubDate = value.Element("pubDate").Value;
                    _item.Category = value.Element("category").Value;
                    _item.Category2 = value.Element("category").Value;

                        highwaysResults.Items.Add(_item);

问题是,我的代码只读取第一个“类别”值,但我现在使用的XML有两个“类别”值。

我只想阅读第二个'类别'值。阅读两者都是奖励,但不是必需的。

2 个答案:

答案 0 :(得分:2)

只需使用value.Elements("category")并迭代这些项目。

答案 1 :(得分:1)

使用XPath:using System.Xml.XPath;您可以选​​择第二个类别元素。

_item.Category2 = value.XPathSelectElement("category[2]").Value;