Вы можете попробовать использовать XPath следующим образом:
using System.Xml.XPath;
...
string xpathExpression = "forecastGroup/forecast//temperature[@class='high']";
foreach (XElement el in loaded.XPathSelectElements(xpathExpression))
{
int highTemperature = Int32.Parse(el.Value);
}
Выражение поиска может быть короче ("//temperature[@class='high']"
), но более эффективно быть более подробным о положении значений.
Если вы хотите отфильтровать температуры с помощью значения атрибута класса 'high' или 'low', вы можете использовать это выражение xpath:
"forecastGroup/forecast//temperature[@class='high' or @class='low']"
Если вы хотите решить, что делать, основываясь на атрибуте @class, выможете использовать этот код:
string xpathExpression = "forecastGroup/forecast//temperature[@class='high' or @class='low']";
foreach (XElement el in loaded.XPathSelectElements(xpathExpression))
{
int temperature = Int32.Parse(el.Value);
if (el.Attribute("class").Value == "low")
{
// do sth with low value
}
else
{
// do sth with high value
}
}