首頁 >後端開發 >C++ >如何從 .NET 中的序列化 XML 中刪除所有命名空間?

如何從 .NET 中的序列化 XML 中刪除所有命名空間?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 04:23:43848瀏覽

How to Remove All Namespaces from Serialized XML in .NET?

從.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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn