将命名空间添加到 xml 根节点 c#

Posted

技术标签:

【中文标题】将命名空间添加到 xml 根节点 c#【英文标题】:Add Namespace to an xml root node c# 【发布时间】:2016-07-08 21:17:50 【问题描述】:

我有一个xml,我想添加

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../test/Schemas/test.xsd"

在 c# 中以编程方式 xml 根元素,以便 xml 如下所示。

<?xml version="1.0" encoding="utf-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation="../../../../test/Schemas/test.xsd" >
<value></value>
.
.

<root>

我尝试过的

doc.DocumentElement.SetAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance"); doc.DocumentElement.SetAttribute("xsi:noNamespaceSchemaLocation="../../../../test/Schemas/test.xsd");

【问题讨论】:

This 可能有助于解释。 【参考方案1】:

一种可能的解决方案是使用CreateAttribute 方法创建xsi 属性,然后将此属性添加到根元素,例如:

XmlAttribute xsiAttr = doc.CreateAttribute("xsi", "noNamespaceSchemaLocation", "http://www.w3.org/2001/XMLSchema-instance");
xsiAttr.Value = "../../../../test/Schemas/test.xsd";
doc.DocumentElement.Attributes.Append(xsiAttr);

【讨论】:

以上是关于将命名空间添加到 xml 根节点 c#的主要内容,如果未能解决你的问题,请参考以下文章

使用 jaxb 将命名空间添加到 xml 的根元素

在可视化映射器中将命名空间添加到根节点

命名空间删除xml

C# 在忽略命名空间的同时反序列化 xml

移除 xml 的命名空间

将命名空间添加到根元素