现在掌握了一个如何插入节点以及节点信息的方法:
node:=XMLDocument1.DocumentElement.AddChild('AAA');   //节点名称  
node.Attributes['class']:='class';                    //节点属性 
不过都是在已经存在的XML文件上操作的。比如原始XML文件:
 <?xml version="1.0" encoding="GB2312" ?> 
 <Cofcosms>
 <Result>
  <errCode>005</errCode> 
  <Message>server error, please contact with the admin</Message> 
  </Result>
   </Cofcosms>
插入后:
<?xml version="1.0" encoding="GB2312" ?> 
- <Cofcosms>
- <Result>
  <errCode>005</errCode> 
  <Message>server error, please contact with the admin</Message> 
  <AAA class="class" >aaa</AAA> 
  </Result>
  </Cofcosms>
这样操作有个弊端,每次都是将原有的文件修该得到的。我想请教大家能否自己创建一个XML文件,包含版本和编码并加入一点说明,然后再把数据插入进去?这样操作之后生成类似以下的文件:
<?xml version="1.0" encoding="gb2312"?>
<!--入出库单 roottag:类型 billtype:系统用 docid:唯一编号 receiver:接收方 sender:发送方编码 proc:操作码 codeexchanged:编码是否转换 exportneedexch导出时是否要根据对照表替换-->
<ufinterface sender="004" receiver="u8" roottag="reason" docid=".2793421" proc="Query" codeexchanged="N" exportneedexch="N" display="原因码档案" family="基础档案">
<reason>
<ReasonCode>1</ReasonCode>
<ReasonName>a</ReasonName>
<Reasontype>1</Reasontype>
<ReasonMemo>1</ReasonMemo>
</ufinterface>
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

解决方案 »

  1.   

    版本和编码\说明这些都是预先固定好的,可以直接用String加入就行,把文件存成xml格式就能读取.
    对xml文件操作就是对节点的操作,XMLDocument有Node的属性很有用,
      

  2.   

    当然是可以的啊
    你用那个xmldocument组件XMLDocument1.DOMDocument.createComment('?xml version="1.0" encoding="gb2312"?')); 创建注释
    XMLDocument1.DOMDocument.createProcessingInstruction('xml', 'version="1.0" encoding="gb2312" '));这里是创建版本和编码
    你试试写些节点看看这里本人刚做过这方面(XML)的项目
      

  3.   

    是吗?那好好交流交流哦还有,文中的<!--入出库单 roottag:类型 billtype:系统用 docid:唯一编号 receiver:接收方 sender:发送方编码 proc:操作码 codeexchanged:编码是否转换 exportneedexch导出时是否要根据对照表替换-->
    老兄有办法解决吗?老兄,公布一下你的QQ,我加你,这样讨论更直接点,可否?其他朋友有好的建议或方法请指教,在此多谢啦!
      

  4.   

    我是用下面的代码来做:
    procedure TForm1.Button3Click(Sender: TObject);
    var node:IXMLNode;
    begin
      //node:=XMLDocument1.DocumentElement.AddChild('tgp1c11');   //节点名称   也可以运行
      XMLDocument1.DOMDocument.createComment('?xml version="1.0" encoding="gb2312"?');
      XMLDocument1.DOMDocument.createProcessingInstruction('xml', 'version="1.0" encoding="gb5656" ');
      node:=XMLDocument1.DocumentElement.ChildNodes.First.AddChild('AAA');     //节点名称
      node.Attributes['class']:='class';                        //节点属性1名称和值
        node.Text:='aaa';                                         //节点内容
      XMLDocument1.SaveToFile('aaa.xml');
    end;出现以下错误:
    Access violation at address 004651FD in module 'Project1.exe'.Read of address 00000000.有高手帮帮我吗?
      

  5.   

    建议用TStringList,很方便,因为看楼主主要是写入,不是修改和删除
      

  6.   

    to:xthmpro_cn(安徽农民*在外打工) ,特别的感谢给你!!