2010-04-22 7 views
5

Der Versuch, eine einfache Analyse eines XML-Dokuments durchzuführen. Was ist der einfachste Weg, um die zwei PropertyGroups unten herauszuziehen?Kann ich mit der XElement.Elements-Methode Elemente mit Platzhalter-Namespace, aber demselben Namen finden?

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    1 
    </PropertyGroup> 
    <PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    2 
    </PropertyGroup> 
</Project> 

Ich habe versucht, XElement.Elements (XName) zu verwenden, aber so muß ich das Präfix Property mit der xmlns zu tun. Das Problem ist, dass mir der Namespace egal ist und wenn er sich in Zukunft ändert, möchte ich immer noch alle PropertyGroups abrufen.

var xml = XElement.Load(fileNameWithPath); 
var nameSpace = xml.GetDefaultNamespace(); 

var propertyGroups= xml.Elements(nameSpace + "PropertyGroup"); 

Können Sie diesen Code so verbessern, dass ich nicht mit nameSpace vorspulen muss? Ich weiß, dass ich die Elements-Methode im Wesentlichen einfach neu implementieren kann, aber ich hatte gehofft, dass es einen Weg gibt, einen Platzhalter-Namespace zu übergeben?

Danke,

Gavin

Antwort

9

Ist diese Arbeit für Sie?

xml.Elements().Where(e => e.Name.LocalName == "PropertyGroup") 
Verwandte Themen