C# XML - 使用 XML Writer 进行多命名空间声明

2023-12-13

我正在尝试使用 C# 中的 System.Xml.Xmlwriter 创建具有多个命名空间的 XML 文档,但在编译时收到以下错误:

在同一起始元素标记中,不能将前缀 '' 从 '' 重新定义为 'http://www.acme.com/BOF'。

我的完整代码如下:

        XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent = true };

        XmlWriter writer = XmlWriter.Create("C:\\ACME\\xml.xml", settings);

        writer.WriteStartDocument();

        writer.WriteStartElement("BOF");
        writer.WriteAttributeString("xmlns", null, null, "http://www.acme.com/BOF");  //This is where I get my error
        writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
        writer.WriteAttributeString("fileName", null, null, "test.xml");
        writer.WriteAttributeString("date", null, null, "2011-10-25");
        writer.WriteAttributeString("origin", null, null, "MYORIGIN");
        writer.WriteAttributeString("ref", null, null, "XX_88888");
        writer.WriteEndElement();

        writer.WriteStartElement("CustomerNo");
        writer.WriteString("12345");
        writer.WriteEndElement();

        writer.WriteEndDocument();

        writer.Flush();
        writer.Close();

我究竟做错了什么?

Thanks

John


writer.WriteStartElement("BOF"); // write element name BOF, no prefix, namespace ""
writer.WriteAttributeString("xmlns", null, null, "http://www.acme.com/BOF");  //Set namespace for no prefix to "http://www.acme.com/BOF".

第二行没有意义,因为您将默认(无前缀)命名空间分配给了与它本身不同的东西,在同一个地方。

将这两行替换为writer.WriteStartElement("BOF", "http://www.acme.com/BOF")

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# XML - 使用 XML Writer 进行多命名空间声明 的相关文章

随机推荐

  • 在 Objective-C 中,什么时候应该使用属性,什么时候应该使用实例变量?

    我不熟悉同时具有属性和实例变量的程序语言 所以我不知道使用属性和实例变量的好方法 现在 我在 Objective C 代码中仅使用属性 并且不使用任何实例变量 我需要使用实例变量吗 或者仅使用属性是 Objective C 的最佳实践 in
  • iPhone 上的二进制短信

    我正在寻找有关如何在 iPhone 上实现二进制 SMS 的信息 我特别想知道你需要在 iOS 应用程序中做什么 如果可能的话 监听特定的 SMS 端口并 然后收到专用的二进制短信通知 当然 我正在寻找基于官方 公共 API 的解决方案 没
  • 如何处理多种日期格式?

    当我到达下面的 df date 行时 当具有此格式的日期时应用程序崩溃2016 12 27 14 40 46 0000用来 致命错误 在解包可选值时意外发现 nil 我也看到了这一点 错误 执行被中断 原因 EXC BAD INSTRUCT
  • 使用 CImg 加载 PNG

    我无法使用 CImg 加载 PNG 我听说您需要先获取 libpng zlib 才能开始工作 但我不确定如何设置 我在Ubuntu上 我的来源 include
  • Firefox 上的 Polymer 1.0 ReferenceError:Polymer 未定义

    您好 我在 Chrome 和 Opera 上有一个可用的 Polymer 1 0 网页 现在我需要该页面在 Firefox 和 Safari 中运行 我有以下测试
  • Iframe 下的 IE11 怪异模式 - javascript 错误

    我几天来一直在阅读和寻找答案 但找不到答案 希望这篇文章能带来救赎 在我的公司 我们有一个在 IE8 上运行的网络应用程序 我们正在尝试迁移到 IE11 我们快到了但是 我们有一个旧模块 它是在旧框架中编写的 该框架托管在 iframe 中
  • 如何在 django-cms 中使用 iframe

    我正在寻找一个好的解决方案 使最终用户能够在模板占位符中插入 iframe Soundcloud 我考虑过使用 djangocms text ckeditor 插件 在里面文档它说使用可配置的清理程序来完成此操作 djangocms tex
  • ClassCastException 在 scala 中使用 ArgumentCapture for Double

    我使用时遇到问题ArgumentCapture for a Double在斯卡拉 我正在尝试捕捉一个Double对被嘲笑的特质的论证 当尝试捕获时 相同的语法可以正常工作Int 这是一个测试示例 import org scalatest F
  • 如何使用go模板通过FuncMap解析html文件

    我使用以下代码来解析 html 模板 效果很好 func test w http ResponseWriter req http Request data struct A int B int A 2 B 3 t template New
  • ubuntu 中不支持 Major.minor 版本 52.0

    我在用jdk1 8 0 25 当我使用以下命令检查 Java 版本时 java version 它输出以下内容 java version 1 7 0 65 OpenJDK Runtime Environment IcedTea 2 5 3
  • 如何自动将 MySQL 列转换为小写

    是否有一个属性可以添加到列中 以便将其值转换为小写 而不是通过 PHP 对每个值执行此操作 你也许可以通过trigger在插入或更新时触发 我自己 我宁愿创建一个view具有相关列的小写版本 视图的 SQL 可能类似于 SELECT ID
  • 使用列表理解进行素因数分解

    我想仅使用列表理解方法和 或找到给定数字的所有素因数 Haskell 中的 函数组合运算符 我特别想避免递归解决方案 例如 pfactors 120必须产生 2 2 2 3 5 output I tried pfactors n p p l
  • Bash for 循环设置一个变量、它的值并评估它?

    如何使用 for 循环来定义变量 and它的价值 and能够评价一下吗 我无法弄清楚评估部分 但使用 for 循环来定义变量and它的价值似乎有效 具体来说 for i in 1 4 do export my i var path i to
  • 如何使用 ngx-translateservice 翻译打字稿中的方法

    我尝试用这个问题中的所有这些例子来解决我的任务Angular ngx translate 在打字稿中的用法我不知道如何将 TranslateService 连接到我的方法 瑞典语翻译文件se json 无钥匙 NAME Namn 英文翻译文
  • Android自动备份错误

    我正在尝试实现 android 自动备份 Android 6 0 但它不起作用 我得到同样的错误 10 28 22 58 06 980 600 5578 I PFTBT Initiating full data transport back
  • 超时和会话超时问题

    我遇到超时问题 首先 即使 webconfig 中的时间设置为 120 分钟 服务器上每 20 分钟就会发生一次超时 其次 当超时发生时 它会转到登录页面 这是正确的 但重新登录时有时会转到默认页面 有时会转到之前所在的页面 我希望它每次都
  • 为什么缺少媒体类型 application/json 的 writer

    基本上我有一个安静的服务 帖子 它消耗 application json 并产生 application json 该服务的单个参数是一个带注释的 java 对象 我在用org jboss resteasy client ClientReq
  • Pandas 进行分组和求和,但在超过一定数量时创建新行

    我目前有一个数据集 我尝试根据列对行进行分组并对值为整数的列求和 然而 问题是一旦总和达到一定阈值我想创建一个新行 例如 在下面的数据框中 我尝试根据公司名称对行进行分组并总结权重 但是 我不希望权重超过 100 输入数据框 Company
  • 以 Azure Blob 存储块上传视频

    我正在接收分块的文件内容 正如我所读到的 建议使用 Azure blob 存储的最新 nuget 是Azure Storage Blobs 但我找不到任何示例或方法如何分块上传文件 支持吗 我收到的范围为Range标头 我正在用这个快速开始
  • C# XML - 使用 XML Writer 进行多命名空间声明

    我正在尝试使用 C 中的 System Xml Xmlwriter 创建具有多个命名空间的 XML 文档 但在编译时收到以下错误 在同一起始元素标记中 不能将前缀 从 重新定义为 http www acme com BOF 我的完整代码如下