XmlWriter 无效的冒号字符
XmlWriter invalid colon character
我正在使用有效的 xml 文件作为模板,使用 XmlWriter 构建一些 xml。在文件中,我有这一行:<ds:Signature>
所以,我在 C# 中做了这个:
writer.WriteStartElement("ds:Signature");
但是它给我一个无效字符0x3A的错误,它是一个冒号。有没有办法让我使用 XmlWriter 构建那行 xml?
在您的示例中,"ds" 指的是一个 xml 命名空间,并且在正确的 XML 中,您不能在不声明它的情况下使用它,无论是在一个节点中还是它的其中一个祖先,在文件的前面。
XmlWriter
知道名称空间,迫使您创建正确的 XML。它会在您使用命名空间时记住它们。
这意味着您可以执行以下操作:
using (var x = XmlWriter.Create("test.xml"))
{
x.WriteStartElement("ds", "ParentNode", "namespace");
x.WriteStartElement("ds", "Signature", "namespace");
x.WriteEndElement();
x.WriteEndElement();
x.Flush();
x.Close();
}
这将产生以下内容:
<?xml version="1.0" encoding="utf-8"?>
<ds:ParentNode xmlns:ds="namespace">
<ds:Signature />
</ds:ParentNode>
这告诉阅读 xml 的人 "ParentNode" 和 "Signature" 是在命名空间 "namespace" 中定义的,它被分配了前缀 "ds" xmlns:ds="namespace"
属性。
这非常有用,但如果您想要更简单的东西,并且只想吐出文本,我会说只需使用 StreamWriter
:
using (var s = new StreamWriter("test.xml"))
{
s.WriteLine("<ds:Signature>");
s.Flush();
s.Close();
}
我使用了这个代码:
writer.WriteStartElement("wp","wxr_version", null);
得到这个结果:
<wp:wxr_version>
我正在使用有效的 xml 文件作为模板,使用 XmlWriter 构建一些 xml。在文件中,我有这一行:<ds:Signature>
所以,我在 C# 中做了这个:
writer.WriteStartElement("ds:Signature");
但是它给我一个无效字符0x3A的错误,它是一个冒号。有没有办法让我使用 XmlWriter 构建那行 xml?
在您的示例中,"ds" 指的是一个 xml 命名空间,并且在正确的 XML 中,您不能在不声明它的情况下使用它,无论是在一个节点中还是它的其中一个祖先,在文件的前面。
XmlWriter
知道名称空间,迫使您创建正确的 XML。它会在您使用命名空间时记住它们。
这意味着您可以执行以下操作:
using (var x = XmlWriter.Create("test.xml"))
{
x.WriteStartElement("ds", "ParentNode", "namespace");
x.WriteStartElement("ds", "Signature", "namespace");
x.WriteEndElement();
x.WriteEndElement();
x.Flush();
x.Close();
}
这将产生以下内容:
<?xml version="1.0" encoding="utf-8"?>
<ds:ParentNode xmlns:ds="namespace">
<ds:Signature />
</ds:ParentNode>
这告诉阅读 xml 的人 "ParentNode" 和 "Signature" 是在命名空间 "namespace" 中定义的,它被分配了前缀 "ds" xmlns:ds="namespace"
属性。
这非常有用,但如果您想要更简单的东西,并且只想吐出文本,我会说只需使用 StreamWriter
:
using (var s = new StreamWriter("test.xml"))
{
s.WriteLine("<ds:Signature>");
s.Flush();
s.Close();
}
我使用了这个代码:
writer.WriteStartElement("wp","wxr_version", null);
得到这个结果:
<wp:wxr_version>