C# 使用 XmlWriter 编写 “d3p1:string” 元素
本文关键字:string 元素 d3p1 使用 XmlWriter 编写 | 更新日期: 2023-09-27 18:27:52
<Messages xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:string>sample string 1</d3p1:string>
<d3p1:string>sample string 2</d3p1:string>
</Messages>
有了XmlWriter
,我想写这个XML
法典:
writer.WriteStartElement("Messages");
writer.WriteAttributeString("xmlns", "d3p1", null, "http://schemas.microsoft.com/2003/10/Serialization/Arrays");
writer.WriteElementString("d3p1:string", "my message");
writer.WriteEndElement();
问题是
writer.WriteElementString("d3p1:string", "my message");
无效。
":"字符(十六进制值0x3A(不能包含在 名字。
如何编写d3p1:string
xml 标签?
同时在 WriteElementString 中使用命名空间和前缀:
const string ns = "http://schemas.microsoft.com/2003/10/Serialization/Arrays";
const string prefix = "d3p1";
using(var writer = XmlWriter.Create("file.xml"))
{
writer.WriteStartElement("Messages");
writer.WriteAttributeString("xmlns", prefix, null, ns);
writer.WriteElementString(prefix, "string", ns, "my message");
writer.WriteEndElement();
}
我也有类似的问题。 我需要写:
<t xml:space="preserve">
这样做的代码是:
writer.WriteAttributeString("xml", "space", "http://www.w3.org/XML/1998/namespace", "preserve")