C# XMLWriter 创建 WriteAttributeStringAsync

Posted

技术标签:

【中文标题】C# XMLWriter 创建 WriteAttributeStringAsync【英文标题】:C# XMLWriter create WriteAttributeStringAsync 【发布时间】:2021-12-29 08:34:52 【问题描述】:

有谁知道我如何用 XMLWriter 写出这行代码?

<TextChild xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="string">User defined 3</TextChild>

这里的问题是 xmlns:dt 和 dt:dt

错误消息:“dt”是重复的属性名称。

await writer.WriteStartElementAsync(string.Empty, "TextChild", string.Empty);
await writer.WriteAttributeStringAsync("xmlns", "dt", string.Empty, "urn:schemas-microsoft-com:datatypes");
await writer.WriteAttributeStringAsync("dt", "dt", string.Empty, "boolean");
await writer.WriteStringAsync(name);
await writer.WriteEndElementAsync();//TextChild

【问题讨论】:

【参考方案1】:

xmlns:dt 是一个命名空间定义。这不是属性。 它不需要手动创建。创建属性时指定命名空间即可。

await writer.WriteStartElementAsync(null, "TextChild", null);
await writer.WriteAttributeStringAsync("dt", "dt", "urn:schemas-microsoft-com:datatypes", "string");
await writer.WriteStringAsync(name);
await writer.WriteEndElementAsync();

【讨论】:

以上是关于C# XMLWriter 创建 WriteAttributeStringAsync的主要内容,如果未能解决你的问题,请参考以下文章

C#操作XML文档总结

如何在 .NET 中使用 XmlWriter 创建 XmlDocument?

如何避免 XmlWriter 创建默认的“xmlns”空属性?

使用XmlWriter写Xml

使用XmlWriter写Xml

XmlWriter 异步操作因 XmlWriterSettings.OutputMethod = Html 而失败