簡體   English   中英

C# 更新 XmlElemt 的 XMLNS

[英]C# update XMLNS of XmlElemt

我有一個類:

[XmlRoot(ElementName = "Root", Namespace = "https://NS.com")]
public class Root
{
        [XmlElement(Namespace = "https://NS2.com")]
        public Header header { set; get; }
        public Body{ set; get; }
}

我將obj序列化為 XML:

using (MemoryStream ms = new MemoryStream())
{
    using (XmlWriter wr = XmlWriter.Create(ms))
    {
        serializer.Serialize(wr, obj, ns);
    }

    ms.Position = 0;
    XmlDocument doc.Load(ms);

    ms.Close();
}

我找不到任何方法將 Root 和 Header 的 nameSpace 更改為 newNS 和 newHeadNS。 有沒有辦法更改文檔中的命名空間? 任何幫助將不勝感激

您可以使用XmlAttributeOverrides來覆蓋它。

初始化您的序列化程序:

var overrides = new XmlAttributeOverrides();
overrides.Add(typeof(Root), new XmlAttributes() { XmlRoot = new XmlRootAttribute() { Namespace = "https://NS.new" } });
var header = new XmlAttributes();
header.XmlElements.Add(new XmlElementAttribute() { Namespace = "https://NS.new/head" });
overrides.Add(typeof(Root), "Header", header);

var serializer = new XmlSerializer(typeof(Root), overrides);

並且,以下要序列化:

serializer.Serialize(wr, obj);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM