xml中如何创建节点并给节点的属性赋值?
<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE>
<HEAD>
<RESULT SUCCESS="0" MSGCODE="123456" MSG="错误消息"/>
</HEAD>
<BODY>
<DATASET NAME="DS_1">
<META USR_ID="LONG" BIRTH="DATE" HIGH="FLOAT" SAVE_COUNT="DOUBLE" SEX="INTEGER" NAME="STRING" ADDRESS="STRING"/>
<BEAN USR_ID="9223372036854775801" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
</DATASET>
<DATASET NAME="DS_2">
<META DE="DOUBLE" MOBILE="STRING" ADDRESS2="STRING" END="DATE" NAME="STRING" START="DATE" FL="FLOAT" PHONE="STRING" ID="INTEGER" ADDRESS="STRING"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
</DATASET>
<DATASET NAME="DS_3">
<META DE="DOUBLE" MOBILE="STRING" ADDRESS2="STRING" END="DATE" NAME="STRING" START="DATE" FL="FLOAT" PHONE="STRING" ID="INTEGER" ADDRESS="STRING"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
</DATASET>
<DATASET NAME="DS_4">
<META USR_ID="LONG" BIRTH="DATE" HIGH="FLOAT" SAVE_COUNT="DOUBLE" SEX="INTEGER" NAME="STRING" ADDRESS="STRING"/>
<BEAN USR_ID="9223372036854775802" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775803" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775804" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775805" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775806" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775807" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775808" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775809" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775810" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775811" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
</DATASET>
</BODY>
</RESPONSE>写出来的xml是这样的。哪位大侠请指点指点。小弟在此谢谢了。
<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE>
<HEAD>
<RESULT SUCCESS="0" MSGCODE="123456" MSG="错误消息"/>
</HEAD>
<BODY>
<DATASET NAME="DS_1">
<META USR_ID="LONG" BIRTH="DATE" HIGH="FLOAT" SAVE_COUNT="DOUBLE" SEX="INTEGER" NAME="STRING" ADDRESS="STRING"/>
<BEAN USR_ID="9223372036854775801" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
</DATASET>
<DATASET NAME="DS_2">
<META DE="DOUBLE" MOBILE="STRING" ADDRESS2="STRING" END="DATE" NAME="STRING" START="DATE" FL="FLOAT" PHONE="STRING" ID="INTEGER" ADDRESS="STRING"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
</DATASET>
<DATASET NAME="DS_3">
<META DE="DOUBLE" MOBILE="STRING" ADDRESS2="STRING" END="DATE" NAME="STRING" START="DATE" FL="FLOAT" PHONE="STRING" ID="INTEGER" ADDRESS="STRING"/>
<BEAN DE="32323245009.323235" MOBILE="013914567869" ADDRESS2="ASDKJFOIERLKAJSDLFKJJJJJJJJJJJJJJJJJJJJJJJJJJJALSKDF,XZNC.,VMNAKJHFRIEURLKASF" END="2007-01-05 15:08:36" NAME="KEVIN" START="2007-01-05 15:08:36" FL="4324.399902" PHONE="021-55676556" ID="123" ADDRESS=";ASLKDJF;ALKSDFOIEURLKJASDLFKJOIEWURQLKWEF,ZV;LKSADLFKJOIEWR"/>
</DATASET>
<DATASET NAME="DS_4">
<META USR_ID="LONG" BIRTH="DATE" HIGH="FLOAT" SAVE_COUNT="DOUBLE" SEX="INTEGER" NAME="STRING" ADDRESS="STRING"/>
<BEAN USR_ID="9223372036854775802" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775803" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775804" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775805" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775806" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775807" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775808" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775809" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775810" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
<BEAN USR_ID="9223372036854775811" BIRTH="2007-01-05 15:08:36" HIGH="32234.433594" SAVE_COUNT="232324444.332232" SEX="1" NAME="KEVIN中文" ADDRESS="TEST ADDRESSOK ASDF!"/>
</DATASET>
</BODY>
</RESPONSE>写出来的xml是这样的。哪位大侠请指点指点。小弟在此谢谢了。
解决方案 »
- VB中 FindNextPrinterChangeNotification()用法
- word编辑的时候出现Call was rejected by callee的错误,那位高手能告诉我如何解决吗?
- 怎么回事???
- 用 WINSOCK 能远程传送文件吗?怎样实现???
- 关于在VB中运用SQL Server 的两个问题
- 讨论如何在网络间传递记录集(Recordset)?参与有奖!!!快来哦!!!
- DataGrid1实时显示从com口中得到的硬件所发的数据
- 如何找到win2k中的系统用的图标?
- 请问如何在true grid中作统计?多谢了
- 微软如果败诉。。我们该怎么办?
- 把数据导入指定EXCL 表中
- 代表北京CSDNer欢迎来这里挨踢,最好多带几个PLMM来
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MSXML_TLB,Comobj, ComCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
tvXML: TTreeView;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure tvXMLClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
//创建
procedure TForm1.Button1Click(Sender: TObject);
var
doc : IXMLDOMDocument;
root,{child1,child2,}childtmp : IXMLDomElement;
//XMLAtri : IXMLDOMAttribute;
procedure addSysNode(pElement : IXMLDomElement;iDepth : Integer);
var
child1 : IXMLDomElement;
i : Integer;
begin
child1 := doc.createElement('SysNode'+inttostr(iDepth));
child1.setAttribute('Vol','102');
child1.setAttribute('Option','2');
child1.setAttribute('ConnectID','1');
child1.setAttribute('No','0');
child1.setAttribute('Num','-1');
pElement.appendChild(child1); if iDepth = 5 then
begin
exit;
end; addSysNode(child1,iDepth+1); end;
begin
doc := CreateOLEObject('Microsoft.XMLDOM') as IXMLDomDocument;
root := doc.CreateElement('Site');
root.setAttribute('type','7');
doc.AppendChild(root);
childtmp := doc.CreateElement('SystemNode1');
childtmp.setAttribute('Option','2');
childtmp.setAttribute('ConnectID','1');
childtmp.setAttribute('No','0');
childtmp.setAttribute('Num','63');
root.AppendChild(childtmp); childtmp := doc.CreateElement('SystemNode2');
childtmp.setAttribute('Option','2');
childtmp.setAttribute('ConnectID','1');
childtmp.setAttribute('No','0');
childtmp.setAttribute('Num','63');
root.AppendChild(childtmp); childtmp := doc.createElement('SystemNode');
childtmp.setAttribute('Vol','102');
childtmp.setAttribute('Option','2');
childtmp.setAttribute('ConnectID','1');
childtmp.setAttribute('No','0');
childtmp.setAttribute('Num','-1');
root.AppendChild(childtmp); addSysNode(childtmp,0);
doc.save('e:\xmltest.xml');
end;//解析
procedure TForm1.Button2Click(Sender: TObject);
var
//i : integer;
doc : IXMLDOMDocument;
root : IXMLDOMNode;
tvRoot,curtvNode : TTreeNode;
TreeNodeList : TList;
atriArray : array[1..6] of String; //属性列表数组
{
**根据传入的属性名获取属性值
}
function getAtri(pNode : IXMLDOMNODE; atriName,atrOption : String):string;
var
tmpAtri1 : IXMLDOMNode;
begin
tmpAtri1 := pNode.attributes.getNamedItem(atriName);
if tmpAtri1 <> nil then
begin
if atrOption = '' then
begin
atrOption := tmpAtri1.nodeName+'='+tmpAtri1.nodeValue;
end
else
begin
atrOption := atrOption+','+tmpAtri1.nodeName+'='+tmpAtri1.nodeValue;
end;
end;
result := atrOption;
end; {
**递归获取层次节点
}
procedure addNode(pNode : IXMLDOMNode;ptvNode : TTreeNode);
var
i : Integer;
tmpRoot,childtmp : IXMLDOMNode;
bBrother : Boolean;
atrOption : String;
begin
bBrother := False;
while(pNode <> nil) do
begin
atrOption := ''; for i := 1 to 6 do
begin
atrOption := getAtri(pNode,atriArray[i],atrOption);
end;
if not bBrother then
begin
ptvNode := tvXML.Items.AddChild(ptvNode,pNode.nodeName+'('+atrOption+')'); //父子节点
end
else
begin
ptvNode := tvXML.Items.Add(ptvNode,pNode.nodeName+'('+atrOption+')'); //兄弟节点
end;
if pNode.childNodes.length > 0 then
begin
childtmp := pNode.childNodes.item[0];
addNode(childtmp,ptvNode);
//ptvNode := TreeNodeList.
end;
pNode := pNode.nextSibling;
bBrother := True;
end;
end;
begin
doc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument;
doc.load('E:\xmltest.xml'); //属性名
atriArray[1] := 'type';
atriArray[2] := 'Vol';
atriArray[3] := 'Option';
atriArray[4] := 'ConnectID';
atriArray[5] := 'No';
atriArray[6] := 'Num';
root := doc.firstChild;
addNode(root,nil);end;procedure TForm1.tvXMLClick(Sender: TObject);
var
tvNode : TTreeNode;
begin
tvNode := tvXML.Selected;
if tvNode.Text = '2' then
exit;
end;end.
DELPHI的,从vb改过来的,控件都一样.vb的源码找不到了,就贴个delphi的吧