2016-08-24 54 views
0

我想更改XMl文件中某些節點的odrer。有人可以告訴我如何才能實現這一點。更改Xml文件中節點的順序

我的XML是這樣的:

<magicdraw> 
<diagram> 
<fragment> 
<message id="AA22"/> 
<message id="AF32"/> 
<message id="CD52"/> 
<combinedfragment id="LL43"/> 
</fragment> 
</diagram> 
</magicdraw> 

我想將其更改爲:

<magicdraw> 
<diagram> 
<fragment> 
<message id="AA22"/> 
<combinedfragment id="LL43"/> 
<message id="AF32"/> 
<message id="CD52"/> 
</fragment> 
</diagram> 
</magicdraw> 
+0

當您僅提供一個樣本*並且未能對其進行任何敘述時,您很難了解您的情況。即我們是否允許假定'id'值是固定的?並且只會有這四個元素?如果不是,將會收到更多的樣本和/或對*類型的輸入的解釋以及轉換是什麼將是有用的。例如。是什麼你已經顯示「移動元素與id' LL43'」或「移動元素'LL43'元素'AA22'」下面的元素下面的id' AF32'和'CD52'「? –

回答

0

您可以通過列表框中的項目簡單重複,確定相應的「節點」元素的appendChild它,那麼你應該以正確的順序結束,因爲在已經插入某個節點的節點上執行AppendChild會移動它,並且你會將任何節點移動到其正確的位置:

XmlDocument nodeDoc = new XmlDocument(); 
linksDoc.Load(Server.MapPath("App_Data/Node.xml")); 


foreach (ListItem li in lb1.Items) 
{ 
    string itemId = li.Value; 

    XmlNode node = doc.SelectSingleNode(string.Format("/root/node[@id = '{0}']", itemId)); 
    if (node != null) 
    { 
    node.ParentNode.AppendChild(node); 
    } 
}