delphi中怎么读取XML的 CDATA 节点数据

 我来答
haoxyer
2017-06-01 · TA获得超过1405个赞
知道小有建树答主
回答量:447
采纳率:85%
帮助的人:213万
展开全部
function decodexml(filename: string):boolean;
var
ncount,i,j,k,m,n:integer;
nodeList,nodewp: IXMLNodeList;
node,nodejbxx,row,wpxx: IXMLNode;
datainfo:TBarInfo;
cp:array of TCpInfo;
oldqydm,cqydm:string;
breload:Boolean;
begin
breload:=false;
result:=false;
try
XMLDocument1.FileName :=filename;
XMLDocument1.Active := True; {激活}
nodeList := XMLDocument1.DocumentElement.ChildNodes;
for I := 0 to nodeList.Count-1 do
begin
node:=nodeList[i];
if node.NodeName='aa' then
begin
datainfo.Qy.qymc:=node.ChildValues['a1'];
datainfo.Qy.lxdm:=node.ChildValues['a2'];
datainfo.Qy.qydm:=node.ChildValues['a3'];
datainfo.Qy.zzdm:=node.ChildValues['a4'];
end
else
if node.NodeName='bb' then
begin
nodewp:=node.ChildNodes;
if nodewp.Count>0 then
begin

for k := 0 to nodewp.Count-1 do
begin
row:=nodewp[k];
cp[k].Cplb:=row.ChildNodes.Nodes['b1'].Text;
cp[k].Cpjb:=row.ChildNodes.Nodes['b2'].Text;
cp[k].Cpxh:=row.ChildNodes.Nodes['b3'].Text;
cp[k].cpmc:=row.ChildNodes.Nodes['b4'].Text;
cp[k].zyl:=row.ChildNodes.Nodes['b5'].Text;
cp[k].dw:=row.ChildNodes.Nodes['b6'].Text;
application.ProcessMessages;
end;
end;
end;

end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a470198949
2017-06-01 · TA获得超过359个赞
知道小有建树答主
回答量:592
采纳率:59%
帮助的人:200万
展开全部
很简单,用 TNativeXml 即可实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式