I have XML with and without a prefix on elements, but no namespaces defined for any of them. When I try to load this, it gives me an error on XDocument.Load (at least, I think that’s where it happens) that certain prefixes are not defined. Is there a way to tell the framework to ignore any namespace prefixes? I’m using LINQ to XML, but could use something else if available.
I can’t necessarily pre-define them because I’m going to be working with a variety of documents that may or may not have a prefix defined and no definitive xmlns declaration.
Aren’t prefixes supposed to represent an abbreviation for a namespace? I believe you need to clean up those prefixes that have no namespace associated with them in the first place before processing it, since it isn’t valid XML. A quick regex to replace all prefixes of the form </prefix: with </: and <prefix: with < should do it.
To do this, first replace the following regex matches
</.*?:with</and
<.*?:with<(do not change the ordering).