我正在尝试按名称提取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>
答案 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>