如何用 Delphi 12创建此XML?

0qx6xfy6  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(127)

我想写一些代码(用 Delphi )来得到这个XML模式。但是我不能给节点分配属性,

<Project ProjectName="CoolProject">
 <Options Opt1="Some Options Attribute Value">
  <User1 User1Opt="Some User1 Attribute Value"/>
  <User2 User2Opt="Some User2 Attribute Value"/>
 </Options>
</Project>

字符串
我的代码

Var
  XML : IXMLDOCUMENT;
  RootNode, CurNode : IXMLNODE;
begin
  XML := NewXMLDocument;
  XML.Encoding := 'utf-8';
  RootNode := XML.AddChild('Project');
  RootNode.Attributes['ProjectName'] := 'CoolProject';
  CurNode := RootNode.AddChild('Options');
  CurNode.Attributes['Opt1'] := 'Some Options Attribute Value';
  CurNode.AddChild('User1');
  CurNode.Attributes['User1Opt'] := 'Some User1 Attribute Value';
  CurNode.AddChild('User2');
  CurNode.Attributes['User2Opt'] := 'Some User2 Attribute Value';
  XML.SaveToFile('c:\test\test.xml');
end;


我得到的结果是

<Project ProjectName="CoolProject">
 <Options Opt1="Some Options Attribute Value" User1Opt="Some User1 Attribute Value" User2Opt="Some User2 Attribute Value">
  <User1/>
  <User2/>
 </Options>
</Project>

tp5buhyn

tp5buhyn1#

我相信你犯了一个简单的错误,当我们向你指出它时,你会立即意识到。而不是这样:

CurNode.AddChild('User1');
CurNode.Attributes['User1Opt'] := 'Some User1 Attribute Value';

字符串
你需要这样写:

User1Node := CurNode.AddChild('User1');
User1Node.Attributes['User1Opt'] := 'Some User1 Attribute Value';


对于User2节点也是如此。

相关问题