Abfrage XDocument mit dem Attribut xmlns (Namensraum)

Ich versuche query-Elemente aus einer visual studio *.csproj-Datei. Ich erstellte ein kurzes Beispiel um das problem zu veranschaulichen:

    //Working
    string xml1 = @"<Project ToolsVersion='4.0'>
                      <ItemGroup Label='Usings'>
                        <Reference Include='System' />
                        <Reference Include='System.Xml' />
                      </ItemGroup>
                    </Project>"; 
    //Not working
    string xml2 = @"<Project ToolsVersion='4.0' xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
                      <ItemGroup Label='Usings'>
                        <Reference Include='System' />
                        <Reference Include='System.Xml' />
                      </ItemGroup>
                    </Project>";

    XDocument doc = XDocument.Parse(xml2);

    foreach (XElement element in doc.Descendants("ItemGroup"))
    {
        Console.WriteLine(element);
    }

Den string xml1 funktioniert, xml2 nichts zurückgibt. Der einzige Unterschied zwischen diesen Saiten ist das xmlns-Attribut im Dokument-root.

Wie kann ich die Abfrage von Dokumenten mit xmlns-Attribute?
Warum ist es ein problem, wenn ein xml-Dokument enthält ein xmlns-Attribut?

InformationsquelleAutor Joel | 2013-04-15
Schreibe einen Kommentar