我正在使用OmniXML單元來操作Delphi XE中的XML文件。我設法從磁盤上的文件加載XML內容,現在我想在特定的節點元素下添加一個子節點。新的子節點也將具有「id」屬性。任何人都可以告訴我該怎麼做,因爲OmniXML的文檔很糟糕! 我還想將新的XML保存在另一個文件中,您是否也可以澄清如何操作?使用OmniXML添加子節點
感謝, 蘇
我正在使用OmniXML單元來操作Delphi XE中的XML文件。我設法從磁盤上的文件加載XML內容,現在我想在特定的節點元素下添加一個子節點。新的子節點也將具有「id」屬性。任何人都可以告訴我該怎麼做,因爲OmniXML的文檔很糟糕! 我還想將新的XML保存在另一個文件中,您是否也可以澄清如何操作?使用OmniXML添加子節點
感謝, 蘇
嘗試是這樣的:
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;
順便說一句,這不是很好用的免費,開源軟件,然後抱怨。 :)如果您不喜歡該文檔,您可以隨意購買商業產品,或者爲開源軟件的作者提供幫助,或者爲文檔提供一些工作來改進它。
uses OmniXMLUtils;
childNode := EnsureNode(parentNode, 'id');
而是用原始OmniXML(和OmniXMLUtils,這是一種進步,但仍然非常基本的),你應該看看SimpleStorage和GpFluentXML工作。
謝謝Gabr ...儘管我沒有直接使用你的建議,但它讓我走上了正確的軌道。我使用了AppendNode(parentNode,'id');相反...謝謝! – 2011-04-26 23:30:55
如果答案是它解決了你的問題,那麼請接受它。這樣其他人會知道哪個答案是正確的。 – Runner 2011-04-27 06:48:18