如何在反转一些孩子后保存 xml 文件

How to save xml file after reverse some childs on it

我有一个 xml 文件,我想反转一些节点,然后我想保存结果。 我使用了 XDocumnt 并在其上使用了 revese 函数,它正确地反转了,但在那之后我不知道如何保存文件。 原始文件如下

    <root>
  <parent>
    <child>
      <sec>
        <p>
          <my-formula>
            <test id="H1"></test id="H1">
          </my-formula>
          <my-formula>
            <test id="H2"></test id="H2">
          </my-formula>
          <my-formula>
            <test id="H3"></test id="H3">
          </my-formula>
        </p>
      </sec>
      <sec>
        <p>
          <my-formula>
            <test id="H4"></test id="H4">
          </my-formula>
          <my-formula>
            <test id="H5"></test id="H5">
          </my-formula>
          <my-formula>
            <test id="H6"></test id="H6">
          </my-formula>
        </p>
      </sec>
    </child>
  </parent>
</root>

我需要逆向如下:

    <root>
  <parent>
    <child>
      <sec>
        <p>
          <my-formula>
            <test id="H6"></test id="H6">
          </my-formula>
          <my-formula>
            <test id="H5"></test id="H5">
          </my-formula>
          <my-formula>
            <test id="H4"></test id="H4">
          </my-formula>
        </p>
      </sec>
      <sec>
        <p>
          <my-formula>
            <test id="H3"></test id="H3">
          </my-formula>
          <my-formula>
            <test id="H2"></test id="H2">
          </my-formula>
          <my-formula>
            <test id="H1"></test id="H1">
          </my-formula>
        </p>
      </sec>
    </child>
  </parent>
</root>

之后我想把它保存到新文件中。

can any one help me?

我发现我应该使用 ReplaceNode 函数来替换反向节点然后保存文件 但是反转函数不会反转文件中的节点,不,它只是 return 新的反转值,我应该手动替换它们,如下所示

var fileDataXDoc = XDocument.Load("filePath");
                    var elems = fileDataXDoc.Descendants("node_to_be_reversed").Reverse();

                    int counter = 0;

                    foreach (var xElement in elems)
                    {
                        fileDataXDoc.Descendants("node_to_be_reversed).ElementAt(counter).ReplaceNodes(xElement.Nodes());
                        counter ++;
                    }

                    fileDataXDoc.Save("newReversedFile.xml");