我写了这段代码var
  XMLDoc: TXMLDocument;
  NodeAd, NodeCd, NodeBd: IXMLNode;
  I: Integer;
begin
  XMLDoc := TXMLDocument.Create(Self);
  XMLDoc.Active := True;
  XMLDoc.Version := '1.0';
  XMLDoc.Encoding := 'GB2312';
  XMLDoc.Options := XmlDoc.Options + [doNodeAutoIndent];  NodeAd := XMLDoc.AddChild('Record');
  NodeAd.Attributes['Enabled'] := 'True';
  NodeAd.Attributes['Checked'] := 'True';
  NodeBd := NodeAd.AddChild('ID');
  NodeBd.Text := '1';
  NodeBd := NodeAd.AddChild('Name');
  NodeBd.Text := 'RS';  XMLDoc.SaveToFile('main.config');
  XMLDoc := nil;
end;
生成的XML是这样的<?xml version="1.0" encoding="GB2312"?>
<Record Enabled="True" Checked="True">
  <ID>1</ID>
  <Name>RS</Name>
</Record>
可是我需要的是这样的<?xml version="1.0" encoding="GB2312"?>
<Record Enabled="True" Checked="True">
  <ID>1</ID>
  <Name>RS</Name>
</Record>
<Record Enabled="True" Checked="True">
  <ID>2</ID>
  <Name>TS</Name>
</Record>
我试过重复执行上面的代码,会报错,请高手赐教,谢谢!

解决方案 »

  1.   

    為什麼搞多個根節點??
    <?xml version="1.0" encoding="GB2312"?>
    <data>
    <Record Enabled="True" Checked="True">
      <ID>1</ID>
      <Name>RS</Name>
    </Record>
    <Record Enabled="True" Checked="True">
      <ID>2</ID>
      <Name>TS</Name>
    </Record>
    </data>
      

  2.   

    按照你的想法就不是合法的xml了
      

  3.   

    合法的XML只有一个根节点 Orz
      

  4.   

    我明白了!原来XML里面只能有一个根结点的,谢谢楼上!var
      XMLDoc: TXMLDocument;
      NodeAd, NodeBd, NodeCd: IXMLNode;
      I: Integer;
    begin
      XMLDoc := TXMLDocument.Create(Self);
      XMLDoc.Active := True;
      XMLDoc.Version := '1.0';
      XMLDoc.Encoding := 'GB2312';
      XMLDoc.Options := XmlDoc.Options + [doNodeAutoIndent];  NodeAd := XMLDoc.AddChild('PData');  NodeBd := NodeAd.AddChild('Record');
      NodeBd.Attributes['Default'] := 'True';
      NodeBd.Attributes['Checked'] := 'True';
      NodeCd := NodeBd.AddChild('ID');
      NodeCd.Text := '1';
      NodeCd := NodeBd.AddChild('Name');
      NodeCd.Text := 'RS';
      NodeCd := NodeBd.AddChild('Oldname');
      NodeCd.Text := 'RS';  NodeBd := NodeAd.AddChild('Record');
      NodeBd.Attributes['Default'] := 'True';
      NodeBd.Attributes['Checked'] := 'True';
      NodeCd := NodeBd.AddChild('ID');
      NodeCd.Text := '1';
      NodeCd := NodeBd.AddChild('Name');
      NodeCd.Text := 'RS';
      NodeCd := NodeBd.AddChild('Oldname');
      NodeCd.Text := 'RS';  XMLDoc.SaveToFile('main.config');
      XMLDoc := nil;
    end;
    我改成这样就解决了,谢谢你!