1

我有一个这样的 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 有两个“类别”值。

我只想阅读第二个“类别”值。阅读两者都会是额外的,但不是必需的。

4

2 回答 2

2

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

于 2012-09-23T17:16:24.543 回答
1

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

_item.Category2 = value.XPathSelectElement("category[2]").Value;
于 2012-09-24T03:55:05.500 回答