2011-04-26 54 views
2

我正在使用OmniXML單元來操作Delphi XE中的XML文件。我設法從磁盤上的文件加載XML內容,現在我想在特定的節點元素下添加一個子節點。新的子節點也將具有「id」屬性。任何人都可以告訴我該怎麼做,因爲OmniXML的文檔很糟糕! 我還想將新的XML保存在另一個文件中,您是否也可以澄清如何操作?使用OmniXML添加子節點

感謝, 蘇

回答

2

嘗試是這樣的:

var 
    iDoc, iNode: IXMLNode; 
begin 
    XMLDocument1.LoadFrom...(...); 
    iDoc := XMLDocument1.DocumentElement; 

    // Find node where you want child added  
    // and add a new child 
    iNode := iDoc.ChildNodes[0].AddChild('NewNode'); 
    iNode.Attributes['id'] := '2'; 

    XMLDocument1.SaveTo...(...); 
end; 

順便說一句,這不是很好用的免費,開源軟件,然後抱怨。 :)如果您不喜歡該文檔,您可以隨意購買商業產品,或者爲開源軟件的作者提供幫助,或者爲文檔提供一些工作來改進它。

4
uses OmniXMLUtils; 

childNode := EnsureNode(parentNode, 'id'); 

而是用原始OmniXML(和OmniXMLUtils,這是一種進步,但仍然非常基本的),你應該看看SimpleStorageGpFluentXML工作。

+0

謝謝Gabr ...儘管我沒有直接使用你的建議,但它讓我走上了正確的軌道。我使用了AppendNode(parentNode,'id');相反...謝謝! – 2011-04-26 23:30:55

+1

如果答案是它解決了你的問題,那麼請接受它。這樣其他人會知道哪個答案是正確的。 – Runner 2011-04-27 06:48:18