从与 Linq 到 XML 和 C# 同名的其他节点中选择一个节点

本文关键字:节点 选择 一个 其他 XML Linq 从与 | 更新日期: 2023-09-27 17:55:41

我在XML文件和c#上遇到了问题。xml 文件如下所示:

<data>
   <weather>
       //some stuff
   </weather>
   <weather>
       //some stuff
   </weather>
   <weather>
       //some stuff
   </weather>
   <weather>
       //some stuff
   </weather>

现在我的问题:

例如,我只需要导航到第三个节点。现在我想我可以用这个来解决它:

act_tempereature = wData.Root.Element("weather").Element("maxtempC").Value;

但是,当然,它只选择文档目录中具有该特定名称的第一个元素。那么如何导航到第 3 或第 2 个天气呢?

如果这个问题已经被问过了,我很抱歉,因为我没有找到什么(也许我只是搜索了错误的关键字:/)

希望你能帮到你

从与 Linq 到 XML 和 C# 同名的其他节点中选择一个节点

您可以使用带有复数sElements()来获取所有具有特定名称的元素:

act_tempereatures = wData.Root
                         .Elements("weather")
                         .Elements("maxtempC")
                         .Select(o => o.Value);

然后只需使用foreach循环即可获取每个温度值。或者,如果您只需要一个特定位置的元素,例如第三个,请尝试使用 Skip()Take()

act_tempereature3 = wData.Root
                         .Elements("weather")
                         .Skip(2)
                         .Take(1)
                         .Elements("maxtempC")
                         .Select(o => o.Value);