2012-11-15 15 views
5

ho XML che è come:XDocument.Root.Element restituisce null

<?xml version="1.0" encoding="utf-16"?> 
<RootNodeName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" MyAttribute="7" xmlns="mylink"> 
    <IsValid>false</IsValid> 
    <Name>some matrix</Name> 
    ...Some more nodes... 
</RootNodeName> 

e il codice wich è simile:

var doc = XDocument.Parse(myXmlString); 
Console.WriteLine(doc.Root.Element("Name")); 

e console mostra solo uno spazio vuoto dal doc.Root.Element("Name") rendimenti null = (

Mentre riesco a trovare questo elemento tra i risultati doc.Root.Elements(). doc.Root.Attribute("MyAttribute") restituisce il risultato corretto come wel l.

Cosa c'è di sbagliato in questo/io?

risposta

11

L'elemento <Name> è nella mylink namespace:

XNamespace mylink = "mylink"; 

Console.WriteLine(doc.Root.Element(mylink + "Name")); 
+0

E 'stato semplicemente fantastico! Grazie =) dovrei leggere la documentazione più attentamente =) – dmigo

+0

Cosa succede se dice: 'xmlns =" ​​"'? Grazie –