1
我是C#新手,有希望有人可以幫助我的問題?XML排序以保留根數據
我有一個非常小的代碼片段來排序一個大的XML文件。
using System;
using System.Linq;
using System.Xml.Linq;
public class XMLsort
{
public static void Sort(string netMyFile, string netOutFile)
{
XElement root = XElement.Load(netMyFile);
var orderedtabs = root.Elements("aidocument")
.OrderBy(xtab => (string)xtab.Element("aidocumentheader").Element("accountno"))
.ToArray();
root.RemoveAll();
foreach (XElement tab in orderedtabs)
root.Add(tab);
root.Save(netOutFile);
}
}
這工作得很好,但它是刪除一些根標籤,我想知道如何將它們保留在排序的輸出?
原始XML是:
<?xml version="1.0" encoding="windows-1252" ?>
<aitransmission xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xsi:noNamespaceSchemaLocation="C:\Myschema\mysampleschema.xml">
<transmissionid>20120730DOCS</transmissionid>
<transmissiontime>23:02:19</transmissiontime>
<transmissiondate>2012-27-07</transmissiondate>
<transmissionsource>fromprd</transmissionsource>
<transmissioncount>71</transmissioncount>
<aidocument documenttype="adv">
[data]
</aidocument>
<aidocument documenttype="adv">
[data]
</aidocument>
<aidocument documenttype="adv">
[data]
</aidocument>
</aitransmission>
返回的XML是:
<?xml version="1.0" encoding="utf-8"?>
<aitransmission>
<aidocument documenttype="adv">
[sorted data]
</aidocument>
<aidocument documenttype="adv">
[sorted data]
</aidocument>
<aidocument documenttype="adv">
[sorted data]
</aidocument>
所以 '傳輸*' 標記被剝離。
有人可以提供一些援助嗎?