一次提取一个xml元素

时间:2011-02-25 02:28:45

标签: asp.net xml

我正在尝试按名称提取xml元素,下面的代码确实有效,但它确实返回了所有4个元素,下面是我的xml文件。

我想要的是提取frist元素(StripImages)[0] ???

var xmlDoc = new XmlDocument(); 
xmlDoc.Load(menuUrl);
var stripImages = xmlDoc.GetElementsByTagName("StripImage");

<Main>
<Author>
 .......
 <StripImage>true</StripImage>
</Author>
<Author>
 .......
 <StripImage>true</StripImage>
</Author>
<Author>
 .......
 <StripImage>true</StripImage>
</Author>
<Author>
 .......
 <StripImage>true</StripImage>
</Author>
 </Main>

2 个答案:

答案 0 :(得分:1)

如果您只想第一次使用

stripImages[0]

stripImages.First()

**第二个只有在引用了Linq-Xml扩展并导入System.Linq时才有效。

根据您的评论:

foreach(XmlNode image in stripImages)
{
      DoSomething(image);
}

答案 1 :(得分:0)

如果你可以使用linq到xml,试试这个

        var xmlDoc = XDocument.Load(menuUrl);
        var stripImages = xmlDoc.Descendants("StripImage").ToArray();
        var firstStringImage = stripImages[0];

        Console.WriteLine(stripImages [0]);
        Console.WriteLine(stripImages [1]);
        Console.WriteLine(stripImages [2]);

编辑:

输入

<Main>
<Author>
 <StripImage>true</StripImage>
</Author>
<Author>
 <StripImage>false</StripImage>
</Author>
<Author>
 <StripImage>true</StripImage>
</Author>
<Author>
 <StripImage>true</StripImage>
</Author>
 </Main>

输出

<StripImage>true</StripImage>
<StripImage>false</StripImage>
<StripImage>true</StripImage>