【发布时间】:2012-09-17 09:58:12
【问题描述】:
我得到了数千个遵循相同架构/结构的 XML 文件。 我实现了 IXmlSerializable,因此我自己读取元素和属性。
我的问题是这些文件每个都使用不同的假命名空间。这些文件来自其他来源,所以我无法更改:D 此外,这些命名空间太多了,我无法构建一个可能的命名空间数组并将其传递给 xmlserializer。
现在,如果我不指定命名空间,它会抛出 [xmlns:ns0="http://tempuri.org/abcd.xsd" was not expected] 错误。
我希望能够告诉序列化程序在反序列化我的对象时简单地忽略命名空间并触发 ReadXML。或者只是能够告诉它接受任何“http://tempuri.org/”命名空间。
这可能吗?
我想尽可能避免修改文件。
谢谢!
【问题讨论】:
-
您是否考虑过先加载 XML 以获取命名空间,然后将其传递给 XmlSerializer?
-
@StevenDoggart 是的,我做到了,但我想知道在我开始解决它之前是否有更“合适”的方法来做到这一点。你不能忽略命名空间而不得到异常似乎很愚蠢:S
-
是的,这是一个很好的问题,我很好奇是否也有答案。
标签: xml vb.net xml-serialization xml-namespaces