C# 如何获得特定元素的句柄

C# 如何获得特定元素的句柄,c#,linq-to-xml,xelement,C#,Linq To Xml,Xelement,假设您具有以下xml结构: <root> <File> a.txt <Version> 1.5 </Version> </File> <File> b.txt <Version> 1.0 </Version> </File> </root> a、 文本 1.5 b、 文本 1 如何获取XElement的句柄: 1.0按搜索?

假设您具有以下xml结构:

<root>
  <File> a.txt 
      <Version> 1.5 </Version>
  </File>

  <File> b.txt 
      <Version> 1.0 </Version>
  </File>
</root>

a、 文本
1.5
b、 文本
1
如何获取XElement的句柄:
1.0
按搜索? 我知道我可以使用函数
XElement.element(Xname)

但是这对我没有帮助。

你想要一个版本的列表吗?给你

XDocument doc=XDocument.Load(yourXML);
List<string> lst=doc.Descendants()
                    .Elements("Version")
                    .Select(x=>x.Value).ToList();
XDocument doc=XDocument.Load(yourXML);
列表lst=文档子体()
.要素(“版本”)
.Select(x=>x.Value).ToList();

你的问题不清楚,所以我会尽我所能回答

如果您想获得
版本的列表
s,那么这个代码就足够了

var versions = xDoc.Descendants("Version").ToList();
如果您想从xml中提取其他信息,那么

var files = xDoc.Descendants("File")
                .Select(f => new
                {
                    File = f.Nodes().OfType<XText>().First().Value.Trim(),
                    Version = f.Element("Version").Value.Trim()
                })
                .ToList();
var files=xDoc.subjects(“文件”)
.选择(f=>new
{
File=f.Nodes().OfType().First().Value.Trim(),
Version=f.Element(“Version”).Value.Trim()
})
.ToList();

棘手的部分是获取文件名,例如
b.txt
,因为XElement
文件的值也包含其子文件(
版本
)的值

),但这对我没有帮助
为什么?你的问题不清楚。
处理一下你想得到什么?请澄清你的问题!