【发布时间】:2020-06-03 05:59:58
【问题描述】:
我正在使用 XMLDocument 创建一个 XML 文件,但是当我在 .xml 生成的文件中为一个名为“xsi:type”的元素设置属性时,该属性被更改为只是“type”。
这是我期待的输出:
<ODX xsi:type="VALUE" />
这是我的代码
using System.Xml;
public static void xml_test()
{
XmlDocument doc = new XmlDocument();
XmlDeclaration declaire = doc.CreateXmlDeclaration("1.0", "utf-8", null);
XmlElement ODX = doc.CreateElement("ODX");
ODX.SetAttribute("xsi:type", "VALUE");
doc.AppendChild(ODX);
doc.Save("C:\\Users\\dev\\Pictures\\DocParser\\DocParser\\xml_question_test.xml");
}
这是我得到的 xml_question_test.xml 输出文件的内容:
<ODX type="VALUE" />
请注意如何将属性名称从“xsi:type”更改为“type”,我尝试将属性名称设置为文字,在字符串之前使用 @,但它不起作用……我没有没找到有用的东西……
【问题讨论】:
-
您需要为
xsi:命名空间前缀添加定义。为此,请参阅 this answer 至 How to add xmlnamespace to a xmldocument。 -
xsi:type 来自一个继承的类,其中序列化将具有 [XmlInclude("VALUE")]
标签: c# xml xml-serialization