【问题标题】:Replace the root node in XDocument替换 XDocument 中的根节点
【发布时间】:2014-05-29 22:51:36
【问题描述】:

是否可以替换 XDocument 的根元素?

我目前有一个看起来像这样的文档:

<ArrayOfCompletedInvoice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <CompletedInvoice>
    <Invoice>1</Invoice>
    ...
  </CompletedInvoice>
</ArrayOfCompletedInvoice>

我希望它看起来像:

<ns0:CompletedInvoices xmlns:ns0="http://myNamespace">
  <CompletedInvoice>
    <Invoice>1</Invoice>
    ...
  </CompletedInvoice>
</ns0:CompletedInvoices>

我知道我可以用 XDocument.Root.Name 替换名称,但我一直在寻找是否有办法替换整个元素?

【问题讨论】:

  • 你能用新的根目录创建一个新的XDocument,然后简单地从原始文档中复制第一级XElements 吗? (不是我的反对票,顺便说一句。)
  • @JoãoMendes,我想这可能是更简单的方法。还要感谢您的非反对票。 :p
  • 酷。我会将其添加为答案,以供将来的搜索者使用。

标签: c# xml linq-to-xml


【解决方案1】:

最简单的选择是使用新根创建一个新的XDocument,然后简单地从原始文档中复制第一级XElements。

【讨论】:

    【解决方案2】:

    不是我的答案,但这看起来很相似。考虑标记为重复,但您专门询问 XDocument,这个问题没有专门询问,但答案使用 XDocument。 (基本上只添加以防有人偶然发现此问题,但同时也在寻找更多信息和示例)。

    Change XML root element name

    【讨论】:

      猜你喜欢
      • 2019-01-30
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多