要防止.NET的XmlDocument输出中的空白xmlns属性,可以采用以下方法:
XmlWriter
来创建XML文档,并使用XmlWriterSettings
设置OmitXmlDeclaration
属性为true
。var settings = new XmlWriterSettings
{
OmitXmlDeclaration = true,
Indent = true,
NewLineOnAttributes = true
};
using (var writer = XmlWriter.Create("output.xml", settings))
{
writer.WriteStartElement("root");
writer.WriteAttributeString("xmlns", "http://www.w3.org/2000/xmlns/");
writer.WriteElementString("child", "value");
writer.WriteEndElement();
}
XNamespace
来设置命名空间。var xns = XNamespace.Get("http://www.w3.org/2000/xmlns/");
var doc = new XElement(xns + "root",
new XAttribute(XNamespace.None + "xmlns", "http://www.w3.org/2000/xmlns/"),
new XElement("child", "value")
);
doc.Save("output.xml");
XmlSerializer
序列化对象为XML,并使用XmlSerializerNamespaces
来设置命名空间。[XmlRoot(Namespace = "http://www.w3.org/2000/xmlns/")]
public class Root
{
public string Child { get; set; }
}
var root = new Root { Child = "value" };
var serializer = new XmlSerializer(typeof(Root));
var namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, "http://www.w3.org/2000/xmlns/");
using (var writer = new StreamWriter("output.xml"))
{
serializer.Serialize(writer, root, namespaces);
}
以上方法都可以有效防止.NET的XmlDocument输出中的空白xmlns属性。
云+社区开发者大会 长沙站
云+社区技术沙龙[第22期]
原引擎 | 场景实战系列
腾讯位置服务技术沙龙
“中小企业”在线学堂
DBTalk
云+社区技术沙龙[第4期]
腾讯云GAME-TECH沙龙
腾讯云GAME-TECH游戏开发者技术沙龙
DBTalk技术分享会
领取专属 10元无门槛券
手把手带您无忧上云