2013-07-06 90 views
0

這裏是示例XML的:更改訂單

<root> 
<something1></something1> 
<something2></something2> 
<something3></something3> 
<important> 
<some1>123_random_number</some1><some2>ASD</some2> 
</important> 
<important> 
<some1>456_random_number</some1><some2>FGH</some2> 
</important> 
<important> 
<some1>789_random_number</some1><some2>JKL</some2> 
</important> 
</root> 

我需要改變元素的順序,以獲得XML文檔這樣的:

<root> 
<something1></something1> 
<something2></something2> 
<something3></something3> 
<important> 
<some1>789_random_number</some1><some2>JKL</some2> 
</important> 
<important> 
<some1>456_random_number</some1><some2>FGH</some2> 
</important> 
<important> 
<some1>123_random_number</some1><some2>ASD</some2> 
</important> 
</root> 

有人可以幫我嗎? 由於提前, P

+0

可能重複(http://stackoverflow.com /問題/ 6922180 /排序的XmlDocument - 使用 - LINQ) – MEYWD

回答

0

這很容易,但我初學者:) 下面是答案:[排序使用的XMLDocument LINQ]的

XmlReader reader = XmlReader.Create(@"dataIn.xml"); 
XmlDocument doc = new XmlDocument(); 
doc.Load(reader); 
XmlNodeList elem = doc.GetElementsByTagName("important"); 

List<string> originalOrder = new List<string>(); 

foreach (XmlNode tag in elem) 
    { 
    originalOrder.Add(tag.InnerXml); 
    } 

int numberOfNodes = elem.Count; 

for (int i = 0; i < numberOfNodes; i++) { 
    elem[i].InnerXml = order[order.Count - 1 - i]; 
    } 
doc.Save(@"dataOut.xml");