2012-03-23 1 views
0

ich zum Beispiel meam Iwie alle Knoten und seine Attribute in XML erhalten mit LINQ

var collection = from c in el.Descendants("current_conditions") 
       select c; 

nur Knoten bekommen - current_conditions mit seinen Attributen.

Aber wie bekomme ich andere Knoten (precognition_conditions) ohne neue Abfrage wieder (Ist es möglich, es in einer Abfrage zu tun?)? XML-Dokument sieht wie folgt aus

<current_conditions> 
<condition data="Clear"/> 
<temp_f data="36"/> 
<temp_c data="2"/> 
<humidity data="Humidity: 70%"/> 
<icon data="/ig/images/weather/sunny.gif"/> 
<wind_condition data="Wind: N at 9 mph"/> 
</current_conditions> 
<forecast_conditions> 
    <day_of_week data="Fri"/> 
    <low data="28"/> 
    <high data="54"/> 
    <icon data="/ig/images/weather/mostly_sunny.gif"/> 
    <condition data="Mostly Sunny"/> 
</forecast_conditions> 
+3

el.Elements() verwenden; ? – Default

Antwort

1

Wenn Sie doc.Element für Root-Element tun Sie alle Elementknoten unter der Wurzel zu bekommen.

var xElement = doc.Element(rootElementName); 

Um alle Elementknoten unter jedem Element zu erhalten, können Sie Elemente()

XElement elem = xElement.Element(anyElementName); 
    IEnumerable<XElement> nodeCollection = from allNodes in elem.Elements() 
                  select allNodes; 
+1

warum nicht nur 'nodeCollection = elem.Elements();'? – Default

Verwandte Themen