gpt4 book ai didi

c# - XmlWriter 无效的冒号字符

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:52 27 4
gpt4 key购买 nike

我正在使用 XmlWriter 构建一些 xml,使用有效的 xml 文件作为我的模板。在文件中,我有这一行:<ds:Signature>

所以,我在 C# 中做了这个: writer.WriteStartElement("ds:Signature");

但它给我一个无效字符 0x3A 的错误,它是一个冒号。有没有办法让我使用 XmlWriter 构建那行 xml?

最佳答案

在您的示例中,“ds”指的是一个 xml 命名空间,在正确的 XML 中,如果不在文件前面的节点或其祖先之一中声明它,就不能使用它。

XmlWriter 可识别 namespace ,强制您创建正确的 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”中定义的,它被 xmlns:ds="namespace" 分配了前缀“ds”属性。

这非常有用,但如果您想要更简单的东西,并且只想输出文本,我建议您使用 StreamWriter:

using (var s = new StreamWriter("test.xml"))
{
s.WriteLine("<ds:Signature>");
s.Flush();
s.Close();
}

关于c# - XmlWriter 无效的冒号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32675636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com