我正在使用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