收到报文
<?xml version="1.0" encoding="UTF-8"?>
<A><B>111111</B>
<C>2015-11-10</C>
<D Type=””>
<E>S00001</E>
<E>S00002</E>
</D>
<F>A111111</F>
<G>
<H>EXCLE</H>
<H>DBF</H>
</G>
<J>back</J>
<K>C:\</K>
<L>YYYYMMDD</L>
</A>
GZBXml := TXMLDocument.Create(Application);
try
try
GZBXml.Active := False;
GZBXml.XML.Add(AParams);
GZBXml.Active := True;
GZBXml.Version:='1.0';
GZBXml.Encoding := 'UTF-8';
XMLNode1 := nil;
XMLNode1 := GZBXml.ChildNodes.FindNode('A');
if XMLNode1 = nil then
raise Exception.Create('A,XML格式错误');
for I := 0 to XMLNode1.ChildNodes.Count - 1 do
begin
if UpperCase('B') = UpperCase(XMLNode1.ChildNodes[I].NodeName) then
B :=Trim(XMLNode1.ChildNodes[I].Text);
if UpperCase('C') = UpperCase(XMLNode1.ChildNodes[I].NodeName) then
C :=Trim(XMLNode1.ChildNodes[I].Text);
if UpperCase('D') = UpperCase(XMLNode1.ChildNodes[I].NodeName) then
begin
D := EmptyStr;
for J := 0 to XMLNode1.ChildNodes[I].AttributeNodes.Count - 1 do
begin
if UpperCase('Type') = UpperCase(XMLNode1.ChildNodes[I].AttributeNodes[J].NodeName) then
D := Trim(XMLNode1.ChildNodes[I].AttributeNodes[J].Text);
end;
if D = EmptyStr then
begin
XMLNode2 := nil;
XMLNode2 := XMLNode1.ChildNodes.FindNode('E');
if XMLNode2 = nil then
raise Exception.Create('无法找到E节点,XML格式错误');
E := EmptyStr;
for J := 0 to XMLNode2.ChildNodes.Count - 1 do
begin
if E = EmptyStr then
E := Trim(XMLNode2.ChildNodes[J].Text)
else
E := E + ',' + Trim(XMLNode2.ChildNodes[J].Text);
end;
end;
end;
if UpperCase('F') = UpperCase(XMLNode1.ChildNodes[I].NodeName) then
F :=Trim(XMLNode1.ChildNodes[I].Text);
XMLNode2 := nil;
XMLNode2 := XMLNode1.ChildNodes.FindNode('G');
if XMLNode2 = nil then
raise Exception.Create('无法找到AssetCode节点,XML格式错误');
G := EmptyStr;
for J := 0 to XMLNode2.ChildNodes.Count - 1 do
begin
if G = EmptyStr then
G := Trim(XMLNode2.ChildNodes[J].Text)
else
G := G + ',' + Trim(XMLNode2.ChildNodes[J].Text);
end;
if UpperCase('K') = UpperCase(XMLNode1.ChildNodes[I].NodeName) then
K :=Trim(XMLNode1.ChildNodes[I].Text);
if UpperCase('L') = UpperCase(XMLNode1.ChildNodes[I].NodeName) then
L :=Trim(XMLNode1.ChildNodes[I].Text);
end;
返回报文
<?xml version="1.0" encoding="UTF-8"?>
<A>
<B>111111</B>
<C>2015-11-10</C>
<D>A001</D>
<E>
<F F1=”F00001” F2=”F1000”/>
<F F1=”F00002” F2=”F0000”/>
</E>
</A>
GZBXml.Active := False;
GZBXml.XML.Clear;
GZBXml.Active := True;
GZBXml.Version:='1.0';
GZBXml.Encoding := 'UTF-8';
XMLNode1 := GZBXml.AddChild('A');
XMLNode2 := XMLNode1.AddChild('B');
XMLNode2.Text := 111111;
XMLNode2 := XMLNode1.AddChild('C');
XMLNode2.Text := '2015-11-10';
XMLNode2 := XMLNode1.AddChild('D');
XMLNode2.Text := 'A001';
XMLNode2 := XMLNode1.AddChild('E');
XMLNode3 := XMLNode2.AddChild('F');
XMLNode3.SetAttribute('F1', 'F00001');
XMLNode3.SetAttribute('F2', 'F1000');
XMLNode3.SetAttribute('F1', 'F00002');
XMLNode3.SetAttribute('F2', 'F0000');
Result := GZBXml.XML.Text;
except
ErrorStr := Exception(ExceptObject).Message;
end;
finally
GZBXml.Active := False;
FreeAndNil(GZBXml);
end;