2012-11-15 5 views
5

I XML haben, die wie ist:XDocument.Root.Element null zurück

<?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> 

und Code wich ist wie:

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

und Konsole zeigt nur einen leeren Raum seit doc.Root.Element("Name") kehrt null = (

Während ich dieses Element unter doc.Root.Elements() Ergebnisse finden kann, doc.Root.Attribute("MyAttribute") gibt korrekte Ergebnisse als auch l.

Was ist los mit mir?

Antwort

11

Das <Name> Element ist im mylink Namespace:

XNamespace mylink = "mylink"; 

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

Das war einfach toll! Thanks =) Ich sollte die Dokumentation sorgfältiger lesen =) – dmigo

+0

Was ist, wenn es heißt: 'xmlns =" ​​"'? Vielen Dank –