从 .NET 中的序列化 XML 中删除所有命名空间
在将对象序列化为 XML 的过程中,经常会遇到这样的命名空间作为附加到序列化文档的“xsi”和“xsd”。这些命名空间可能会造成混乱和复杂性。
提供的代码片段尝试通过设置 OmitXmlDeclaration 标志来省略 XML 命名空间。但是,生成的 XML 仍然包含 xsi 和 xsd 命名空间。要完全删除这些命名空间,需要执行额外的步骤。
解决方案在于定义一个空的 XmlSerializerNamespaces 对象并将其传递给 Serialize 方法:
... XmlSerializer s = new XmlSerializer(objectToSerialize.GetType()); XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", ""); // Add an empty namespace for each prefix s.Serialize(xmlWriter, objectToSerialize, ns);
此代码将一个空的命名空间添加到XML 文档,有效地删除任何前缀或命名空间声明。结果,序列化文档将包含干净的
<message> ... </message>
以上是如何从 .NET 中的序列化 XML 中删除所有命名空间?的详细内容。更多信息请关注PHP中文网其他相关文章!