2010-04-22 14 views
5

Intentando hacer un análisis simple de un documento XML. ¿Cuál es la forma más fácil de extraer los dos grupos de propiedades a continuación?Usando el método XElement.Elements, ¿puedo encontrar elementos con espacio de nombres comodín pero con el mismo nombre?

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

he estado tratando de utilizar XElement.Elements (XName) pero para hacerlo necesito para prefijar PropertyGroup con los xmlns. El problema es que no me importa el espacio de nombres y si cambia en el futuro, me gustaría que todos los PropertyGroups se recuperen.

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

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

¿Se puede mejorar este código de manera que no es necesario preceder a nameSpace? Sé que básicamente puedo simplemente volver a implementar el método Elements, pero esperaba que hubiera alguna manera de pasar un espacio de nombres comodín.

Gracias,

Gavin

Respuesta

9

¿Esto funciona para usted?

xml.Elements().Where(e => e.Name.LocalName == "PropertyGroup") 
Cuestiones relacionadas