2011-04-26 53 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