Trying to do a simple parse of an XML document. What's the easiest way to pull out the two PropertyGroups below?
<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>
I have been trying to use XElement.Elements(XName) but to do so I need to prefix PropertyGroup with the xmlns. The issue is that I don't care about the name space and if it changes in future I would still like all PropertyGroups to be retrieved.
var xml = XElement.Load(fileNameWithPath);
var nameSpace = xml.GetDefaultNamespace();
var propertyGroups= xml.Elements(nameSpace + "PropertyGroup");
Can you improve on this code such that I don't need to prepend with nameSpace? I know I can essentially just reimplement the Elements method but I was hoping there was some way to pass a wildcard namespace?
Thanks,
Gavin
Does this work for you?
xml.Elements().Where(e => e.Name.LocalName == "PropertyGroup")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With