[英]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.