2017-06-22 88 views
1

AppendChild使用C#將節點添加到XML文件,並且已經碰壁。我似乎無法添加多個節點。如何使用C#和XmlDocument多次AppendChild?

private void saveBtn_Click(object sender, EventArgs e) 
{ 
    int listCount = listView1.Items.Count; 



    XmlDocument xmlDocNew = new XmlDocument(); 
    xmlDocNew.Load(@"D:\test.xml"); 
    XmlNodeList ticketNodes = xmlDocNew.SelectNodes(@"//objects/ticket"); 
    int ticketCount = ticketNodes.Count; 
    XmlElement mapElement = (XmlElement)xmlDocNew.SelectSingleNode(@"//objects[last()]"); 

    var newRec = xmlDocNew.CreateElement("ticket"); 
    newRec.SetAttribute("number", conBox.Text); 
    mapElement.AppendChild(newRec); 

    XmlNode node = xmlDocNew.SelectSingleNode(@"//objects/ticket[@number='" + conBox.Text + "']"); 


    XmlElement objectRec = xmlDocNew.CreateElement("object"); 
    newRec.AppendChild(objectRec); 

    xmlDocNew.Save(@"D:/test.xml"); 

} 

即使我用newRec.AppendChild(objectRec)的兩倍,或者如果我包含在它的一個或foreach循環,我只在我的XML以下告終。

<objects> 
    <ticket> 
     <object/> 
    </ticket> 
</objects> 

任何幫助,非常感謝!

回答

1

您還需要調用的createElement多次:

for (int i = 0; i < 10; i++) 
{ 
    XmlElement objectRec = xmlDocNew.CreateElement("object"); 
    objectRec.InnerText = i.ToString(); 
    newRec.AppendChild(objectRec); 
} 

當您重新使用它就像一個移動處理相同的元素。請參閱:https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.appendchild(v=vs.110).aspx

+0

好的,謝謝,我已經試過了,發現它可以工作,但是我不知道需要多少個節點。它基於從導入的文件填充的列表視圖。那麼如何爲每個項目創建一個編號的objectRec? –

+0

編輯anser:只需在循環內調用createElement即可。 –

+0

我確信我曾嘗試過,但顯然不是這樣。謝謝你的幫助! –