C# 用 XmlWriter 写入 "d3p1:string" 元素
C# With XmlWriter write "d3p1:string" element
<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");
无效。
The ':' character, hexadecimal value 0x3A, cannot be included in a
name.
如何写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")
<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");
无效。
The ':' character, hexadecimal value 0x3A, cannot be included in a name.
如何写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")