C# 使用XMLWriter写入dt命名空间属性出现重复错误如何解决
问题修正方案
报错的核心原因是写入dt:dt属性时,没有指定dt前缀对应的命名空间URI,导致XMLWriter将其和xmlns:dt命名空间声明判定为重名的无命名空间属性。
修正后的代码如下:
await writer.WriteStartElementAsync(string.Empty, "TextChild", string.Empty); // 写入dt前缀的命名空间声明 await writer.WriteAttributeStringAsync("xmlns", "dt", string.Empty, "urn:schemas-microsoft-com:datatypes"); // 写dt:dt属性时,第三个参数传入dt对应的命名空间URI即可 await writer.WriteAttributeStringAsync("dt", "dt", "urn:schemas-microsoft-com:datatypes", "string"); await writer.WriteStringAsync(name); await writer.WriteEndElementAsync();//TextChild
补充说明:WriteAttributeStringAsync的参数顺序为(属性前缀, 属性本地名, 属性所属命名空间URI, 属性值),带自定义前缀的属性必须传入对应的命名空间URI,XMLWriter才会正确识别前缀绑定,避免和命名空间声明冲突。
内容的提问来源于stack exchange,提问作者Groni0815
相关产品推荐
相关产品推荐

