C# 如何获取xml元素的特定子元素?

C# 如何获取xml元素的特定子元素?,c#,xml,c#-4.0,C#,Xml,C# 4.0,我正在加载一个xml文档,它的元素中有一个foreach循环,我想在其中选择名为tag的子元素 这是xml文件: <?xml version="1.0" encoding="utf-8"?> <view> <tag> <name>content</name> <tag> <name>div</name> </tag> &l

我正在加载一个xml文档,它的元素中有一个foreach循环,我想在其中选择名为
tag
的子元素

这是xml文件:

<?xml version="1.0" encoding="utf-8"?>
<view>
    <tag>
      <name>content</name>
      <tag>
        <name>div</name>
      </tag>
    </tag>
</view>
在foreach循环中编写的代码将包含任何深度的所有标记元素,但我希望得到第一个深度元素(子元素)


如何使用linq执行此操作?

假设所需元素始终是您可以使用的
元素的子元素:

XElement xmlElement = doc.Element("view");
foreach (var tagItem in xmlElement.Elements("tag"))
{
    //do something (only direct children)
}
为了获得所需的元素,没有什么需要做的了。但是,您可以使用Linq实现您的“做点什么”,例如:

XElement firstElem = xmlElement.Elements("tag").OrderBy(e => e.Name).First();

如果有xml,只需使用xsd.exe生成xsd,然后生成类(也使用xsd.exe)。然后可以使用xmlserializer将xml序列化为生成的类结构。第一个深度
标记
元素是否始终是
视图
元素的子元素?然后照本下面说的做……如果你只是想要
的直系子代,那么就用
xmlement.Elements(“标记”)
而不是
后代()
@BenRobinson请把你的评论作为答案。
XElement firstElem = xmlElement.Elements("tag").OrderBy(e => e.Name).First();