C# 我需要一些使用Linq解析XML的帮助
我不熟悉C#和XML,正在尝试为MediaPortal开发一个小型天气插件。我试图在Visual C#2010 Express中使用Linq解析一些XML,但遇到了一个障碍 下面是我试图解析的XML的一个子集:C# 我需要一些使用Linq解析XML的帮助,c#,xml,linq,parsing,linq-to-xml,C#,Xml,Linq,Parsing,Linq To Xml,我不熟悉C#和XML,正在尝试为MediaPortal开发一个小型天气插件。我试图在Visual C#2010 Express中使用Linq解析一些XML,但遇到了一个障碍 下面是我试图解析的XML的一个子集: <forecast> <period textForecastName="Monday">Monday</period> <textSummary>Sunny. Low 15. High 26.</textSummary>
<forecast>
<period textForecastName="Monday">Monday</period>
<textSummary>Sunny. Low 15. High 26.</textSummary>
<temperatures>
<textSummary>Low 15. High 26.</textSummary>
<temperature unitType="metric" units="C" class="high">26</temperature>
<temperature unitType="metric" units="C" class="low">15</temperature>
</temperatures>
</forecast>
我的代码使用占位符注释,但我不知道如何使用Linq从XML中提取高(26)和低(15)。我可以从“Temperature”手动解析它,但我希望我能学到更多关于XML结构的知识
谢谢你的帮助。
道格看起来你想要的是:
Highs = x.Descendants("temperature")
.Where(e => (string)e.Attribute("class") == "high")
这将查找唯一的温度
子体(如果没有或有多个,它将抛出),该子体具有属性类
,值高
,然后将其值强制转换为整数
但这并不完全清楚
一个预测
元素是否可以有多个温度
元素?一个temperatures
元素是否可以有多个temperature
元素具有class==“high”
?您想如何处理不同的单位类型
要将元素取出,可以执行以下操作:
Highs = x.Descendants("temperature")
.Where(e => (string)e.Attribute("class") == "high")
谢谢我只需要得到高和低元素,所以我使用了你文章中的最后一行代码。现在我要去学习.Where和.Attribute。(我对这东西真的很陌生!)
Highs = x.Descendants("temperature")
.Where(e => (string)e.Attribute("class") == "high")