现在掌握了一个如何插入节点以及节点信息的方法:
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>
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
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>
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
对xml文件操作就是对节点的操作,XMLDocument有Node的属性很有用,
你用那个xmldocument组件XMLDocument1.DOMDocument.createComment('?xml version="1.0" encoding="gb2312"?')); 创建注释
XMLDocument1.DOMDocument.createProcessingInstruction('xml', 'version="1.0" encoding="gb2312" '));这里是创建版本和编码
你试试写些节点看看这里本人刚做过这方面(XML)的项目
老兄有办法解决吗?老兄,公布一下你的QQ,我加你,这样讨论更直接点,可否?其他朋友有好的建议或方法请指教,在此多谢啦!
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.有高手帮帮我吗?