C# 如何获取xml元素的特定子元素?
我正在加载一个xml文档,它的元素中有一个foreach循环,我想在其中选择名为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
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();