如何用Delphi 12生成指定结构的XML?
问题原因
你代码里的错误很明确:创建User1和User2节点后,没有保存这些节点的引用,反而继续操作CurNode(也就是Options节点)的属性,导致本该属于User1/User2的属性被错误加到了Options节点上。
修正代码
Var XML : IXMLDOCUMENT; RootNode, OptionsNode, User1Node, User2Node : IXMLNODE; begin XML := NewXMLDocument; XML.Encoding := 'utf-8'; // 创建根节点并设置属性 RootNode := XML.AddChild('Project'); RootNode.Attributes['ProjectName'] := 'CoolProject'; // 创建Options节点并设置属性 OptionsNode := RootNode.AddChild('Options'); OptionsNode.Attributes['Opt1'] := 'Some Options Attribute Value'; // 创建User1节点并设置专属属性 User1Node := OptionsNode.AddChild('User1'); User1Node.Attributes['User1Opt'] := 'Some User1 Attribute Value'; // 创建User2节点并设置专属属性 User2Node := OptionsNode.AddChild('User2'); User2Node.Attributes['User2Opt'] := 'Some User2 Attribute Value'; XML.SaveToFile('c:\test\test.xml'); end;
关键说明
- 新增
User1Node、User2Node变量,专门存储创建后的User1、User2节点引用 - 针对这两个变量操作
Attributes,才能把属性绑定到对应的子节点上,而不是父节点Options
内容的提问来源于stack exchange,提问作者Alex Bonner
相关产品推荐
相关产品推荐

