如何在反转一些孩子后保存 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");
我有一个 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");