1:
<?xml version="1.0" encoding="UTF-8"?>
<Result>
<Status>00</Status>
<Services><Service>
<Service_id>CA_O_SAPP_IN_10000180</Service_id>
<Service_name>常住人口服务方</Service_name>
<Service_status>00</Service_status>
<Hc_result>1</Hc_result>
<Zps><zp>aaa</zp></Zps>
</Service></Services>
</Result>如何解析1:中的数据
结果应该是:
Status=00
Service_id=CA_O_SAPP_IN_10000180
Service_name=常住人口服务方
Service_status=00
Hc_result=1
zp=aaa2:
<?xml version="1.0" encoding="UTF-8"?>
<Result>
<Status>00</Status>
<CurPage>1</CurPage>
<TotalNum>1</TotalNum>
<Rows><Row>
<Col Name="FQZJHM">350322193202163023</Col>
<Col Name="MQZJHM">350322193402163087</Col>
<Col Name="SFZH">350322196806133045</Col>
<Col Name="JG">福建省</Col>
<Col Name="XM">詹良娇</Col>
<Col Name="XB">女</Col>
<Col Name="MZ">汉</Col>
<Col Name="ZZXZ">福建省至亭路69-4号</Col>
<Col Name="XP">aafsas</Col>
<Col Name="FQXM">詹元碗</Col>
<Col Name="MQXM">林瑞英</Col>
<Col Name="CSRQ">19680613</Col>
</Row></Rows>
</Result>
如何解析2:中的数据
结果应该是:
FQZJHM=350322193202163023
MQZJHM=350322193402163087
SFZH=350322196806133045
JG=福建省
XM=詹良娇
XB=女
MZ=汉
ZZXZ=福建省至亭路69-4号
XP=aafsas
FQXM=詹元碗
MQXM=林瑞英
CSRQ=19680613
<?xml version="1.0" encoding="UTF-8"?>
<Result>
<Status>00</Status>
<Services><Service>
<Service_id>CA_O_SAPP_IN_10000180</Service_id>
<Service_name>常住人口服务方</Service_name>
<Service_status>00</Service_status>
<Hc_result>1</Hc_result>
<Zps><zp>aaa</zp></Zps>
</Service></Services>
</Result>如何解析1:中的数据
结果应该是:
Status=00
Service_id=CA_O_SAPP_IN_10000180
Service_name=常住人口服务方
Service_status=00
Hc_result=1
zp=aaa2:
<?xml version="1.0" encoding="UTF-8"?>
<Result>
<Status>00</Status>
<CurPage>1</CurPage>
<TotalNum>1</TotalNum>
<Rows><Row>
<Col Name="FQZJHM">350322193202163023</Col>
<Col Name="MQZJHM">350322193402163087</Col>
<Col Name="SFZH">350322196806133045</Col>
<Col Name="JG">福建省</Col>
<Col Name="XM">詹良娇</Col>
<Col Name="XB">女</Col>
<Col Name="MZ">汉</Col>
<Col Name="ZZXZ">福建省至亭路69-4号</Col>
<Col Name="XP">aafsas</Col>
<Col Name="FQXM">詹元碗</Col>
<Col Name="MQXM">林瑞英</Col>
<Col Name="CSRQ">19680613</Col>
</Row></Rows>
</Result>
如何解析2:中的数据
结果应该是:
FQZJHM=350322193202163023
MQZJHM=350322193402163087
SFZH=350322196806133045
JG=福建省
XM=詹良娇
XB=女
MZ=汉
ZZXZ=福建省至亭路69-4号
XP=aafsas
FQXM=詹元碗
MQXM=林瑞英
CSRQ=19680613
或第三方控件 NativeXml,。
XMLDocument1.DocumentElement.ChildNodes.FindNode("Status").NodeValue
用法参考http://www.codes51.com/article/detail_22765.html
注意:UTF-8编码和ANSI编码之间的转换
Memo1.Clear;
XMLDocument1.LoadFromFile(MainPath+'20140606.xml'); // 读取XML文件
Memo1.Lines.Text := FormatXMLData(XMLDocument1.XML.Text); // 查看格式化文本2、加载内存文件
var ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
ms.LoadFromFile(MainPath+'test.xml');
XMLDocument1.LoadFromStream(ms);
ms.Free;
Memo1.Lines := XMLDocument1.XML; {查看}3、创建XML
var XML1:TXMLDocument;
Node:IXMLNode; // 根结点
node1,node2:IXMLNode; // 子结点
begin
XML1:=TXMLDocument.Create(nil);
XML1.Active:=True;
XML1.Version:='1.0';
XML1.Encoding:='gb2312';
Node:=XML1.AddChild('科室名单'); // 第一个节点是根节点, Root指向根节点
Node.SetAttribute('备注', '测试'); // 为根节点设置属性 职务,科长
Node.SetAttribute('备注', '正局级'); Node1 := Node.AddChild('人员'); // 为根节点添加子节点, 当前 pNode 指向“人员”节点
Node1.SetAttribute('职务', '科长'); // 设置属性 (属性名,属性值)
Node1.SetAttribute('备注', '正局级'); Node2 := Node1.AddChild('姓名'); // 为 pNode 添加子节点
Node2.Text := '张三'; // 为 pNode 添加文本值
Node2.SetAttribute('职务', '科长'); // 设置属性 (属性名,属性值)
Node2.SetAttribute('备注', '正局级');
Node2 := Node.AddChild('性别');
Node2.Text := '男'; Node2 := Node1.AddChild('年龄');
Node2.Text := '34'; Node2 := Node1.AddChild('AAA');
Node2 := Node1.AddChild('BBB');
Node2.SetAttribute('职务', '科长'); // 设置属性 (属性名,属性值)
Node2.SetAttribute('备注', '正局级'); Node2 := Node1.AddChild('CCC');
Node2.SetAttribute('职务', '科长'); // 设置属性 (属性名,属性值)
Node2.SetAttribute('备注', '正局级');
procedure TForm1.Button23Click(Sender: TObject);
var XMLRootNode,XMLnode1,XMLnode2,XMLnode3,XMLnode4,XMLnode5:IXMLNode;
begin
XMLDocument1.XML.Clear;
XMLDocument1.FileName :=MainPath+'test.xml';
XMLDocument1.Active := True; {激活}
XMLRootNode:=XMLDocument1.DocumentElement;
Memo1.Text := ReadXml(XMLRootNode);
// XMLDocument1.DocumentElement:=XMLRootNode;
// XMLDocument1.SaveToFile(MainPath+'test4.xml'); // 保存XML文件
// Memo1.Lines.Text := FormatXMLData(XMLDocument1.XML.Text);
end;procedure TForm1.Button24Click(Sender: TObject);
var i,j,k,k1,k2:integer;
nodeList,nodeList1,nodeList2,nodeList3,nodeList4:IXMLNodeList;
XMLRootNode,XMLnode1,XMLnode2,XMLnode3,XMLnode4,XMLnode5:IXMLNode;
begin
XMLDocument1.FileName := 'Test.xml';
XMLDocument1.Active := True; {激活}
Memo1.Lines.Text := FormatXMLData(XMLDocument1.XML.Text);
XMLRootNode := XMLDocument1.DocumentElement; // 根节点
// XMLRootNode.SetAttribute;
XMLDocument1.SaveToFile('D:\test6.xml'); // 保存XML文件
Memo2.Lines.Add('0根节点:'+XMLRootNode.nodeName+',子节点: '+IntToStr( XMLRootNode.ChildNodes.Count));
NodeList:=XMLRootNode.ChildNodes; // 第1级
fOR I:=0 TO NodeList.Count-1 DO
BEGIN
XMLNode1:=NodeList.Get(i);
If XMLNode1.HasChildNodes then
begin
if XMLNode1.IsTextElement
then Memo2.Lines.Add('1 节点 '+IntToStr(i+1)+' '+XMLNode1.NodeName+' 属性文本')
else Memo2.Lines.Add('1 节点 '+IntToStr(i+1)+' '+XMLNode1.NodeName);
nodeList1:=XMLNode1.ChildNodes; // 第2级
For j:=0 TO NodeList1.Count-1 DO
begin
XMLNode2:=NodeList1.Get(j);
If XMLNode2.HasChildNodes then
begin
if XMLNode2.IsTextElement
then Memo2.Lines.Add('2 节点 '+IntToStr(j+1)+' '+XMLNode2.NodeName+' 属性文本')
else Memo2.Lines.Add('2 节点 '+IntToStr(j+1)+' '+XMLNode2.NodeName);
nodeList2:=XMLNode2.ChildNodes; // 第2级
fOR k:=0 TO NodeList2.Count-1 DO
BEGIN
XMLNode3:=NodeList2.Get(k);
If XMLNode3.HasChildNodes then
begin
if XMLNode3.IsTextElement
then Memo2.Lines.Add('3 节点 '+IntToStr(k+1)+' '+XMLNode3.NodeName+' 属性文本')
else Memo2.Lines.Add('3 节点 '+IntToStr(k+1)+' '+XMLNode3.NodeName);
NodeList3:=XMLNode3.ChildNodes; // 第2级
fOR k1:=0 TO NodeList3.Count-1 DO
BEGIN
XMLNode4:=NodeList3.Get(k1);
If XMLNode4.HasChildNodes then
begin
if XMLNode4.IsTextElement
then Memo2.Lines.Add('3 节点 '+IntToStr(k1+1)+' '+XMLNode4.NodeName+' 属性文本')
else Memo2.Lines.Add('3 节点 '+IntToStr(k1+1)+' '+XMLNode4.NodeName);
NodeList4:=XMLNode4.ChildNodes; // 第2级
fOR k2:=0 TO NodeList4.Count-1 DO
BEGIN
XMLNode5:=NodeList4.Get(k2);
if XMLNode5.HasChildNodes then
begin
if XMLNode5.IsTextElement
then Memo2.Lines.Add('4 节点 '+IntToStr(k2+1)+' '+XMLNode5.NodeName+' 属性文本')
else Memo2.Lines.Add('4 节点 '+IntToStr(k2+1)+' '+XMLNode5.NodeName);
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;