我有这种类型的 xml 文件,我正在尝试获取每个组的 Id 和 Host。
<AAA>
<Group>BTeam</Group>
<CCC>
<DDD>
<Id>1234</Id>
<Host>BTeamHost</Host>
</DDD>
</CCC>
</AAA>
<AAA>
<Group>CTeam</Group>
<CCC>
<DDD>
<Id>3234</Id>
<Host>CTeamHost</Host>
</DDD>
</CCC>
</AAA>
目前我能够获取文件中的每个组,但下面的代码与 group.Value 不匹配
XDocument xdoc = XDocument.Load(xml);
foreach (XElement group in xdoc.Root.Descendants("AAA").Elements("Group"))
{
if (xdoc.Root.Descendants("AAA").Elements("Group").Equals(group.Value))
{
var id = xdoc.Root.Descendants("AAA").Descendants("CCC").Descendants("DDD").Descendants("Id").FirstOrDefault().Value;
var host = xdoc.Root.Descendants("AAA").Descendants("CCC").Descendants("DDD").Descendants("Host").FirstOrDefault().Value;
Console.WriteLine("Group: {0} Id: {1} Host: {2}", group, id, host);
}
}
如果我只是尝试这个,我会从第一个组而不是每个组中获得相同的 id 和主机。
XDocument xdoc = XDocument.Load(xml);
foreach (XElement group in xdoc.Root.Descendants("AAA").Elements("Group"))
{
var id = xdoc.Root.Descendants("AAA").Descendants("CCC").Descendants("DDD").Descendants("Id").FirstOrDefault().Value;
var host = xdoc.Root.Descendants("AAA").Descendants("CCC").Descendants("DDD").Descendants("Host").FirstOrDefault().Value;
Console.WriteLine("Group: {0} Id: {1} Host: {2}", group, id, host);
}
组:BTeam ID:1234 主机:BTeamHost
组:CTeam ID:1234 主机:BTeamHost