2013-08-13 14 views
7

La vecchia classe XmlElement aveva una proprietà FirstChild. Qual è l'equivalente di XElement?Come posso ottenere il primo figlio di XElement?

Visual Studio rifiuta .Element(), .Elements() [0].

EDIT: Grazie per tutti i suggerimenti. Non avevo capito di aver bisogno di importare System.Linq per usare il primo metodo.

Using System.Linq 
.Elements.First 

o

Using System.Linq 
Descendants.First 

o

.FirstNode 
+1

http://msdn.microsoft.com/en-us/library/system.xml.linq. xelement.aspx menziona FirstNode(); è questo quello che cerchi? –

+0

[Descendants] (http://msdn.microsoft.com/en-us/library/bb360635.aspx) –

+0

possibile duplicato di [Come posso ottenere il primo elemento dopo un elemento con LINQ-to-XML?] (Http : //stackoverflow.com/questions/1222242/how-can-i-get-the-first-element-after-an-element-with-linq-to-xml) – phillip

risposta

8

Si desidera il metodo IEnumerable<XElement> Descendants() della classe XElement.

XElement element = ...; 
XElement firstChild = element.Descendants().First(); 

Questo programma di esempio:

var document = XDocument.Parse(@" 
    <A x=""some""> 
     <B y=""data""> 
      <C/> 
     </B> 
     <D/> 
    </A> 
    "); 

Console.WriteLine(document.Root.Descendants().First().ToString()); 

produce questo risultato:

<B y="data"> 
    <C/> 
</B> 
Problemi correlati