zcnzy 2018-03-21 03:57 采纳率: 25%
浏览 1184
已结题

delphi解析xml格式问题

 <Responses>
  <Parameters table="数据表名称(参考附表 a)">
    <Parameter name='@字段名'>值</Parameter>
    <Parameter name='@字段名'>值</Parameter>
    ...
    <!--具体字段说明参考省基卫项目技术文档-->
  </Parameters>
  <Parameters table="数据表名称(参考附表 a)">
    <Parameter name='@字段名'>值</Parameter>
    <Parameter name='@字段名'>值</Parameter>
    ...
  </Parameters>
  ...
</Responses>

这种格式的xml delphi 如何进行解析,一脸懵逼

  • 写回答

1条回答 默认 最新

  • 堕落恶魔_Delphi 2018-03-21 08:23
    关注

    推荐使用QXML来解析, 因为QXML可以不需要XML头: http://blog.qdac.cc/?cat=52
    QXML下载地址可以使用SVN来获取最新版本: svn://www.qdac.cc/QDAC3
    无需安装, 直接设置路径引用即可

    解析代码Demo:

    const
      XNTS: array[TQXMLNodeType] of string = ('XML节点', '文本', '注释', 'CData');
    
      procedure _ShowNodeInfo(APS: string; ANode: TQXMLNode);
      var
        i, j: Integer;
        nXNA: TQXMLAttr;
      begin
        Memo2.Lines.Add(Format('%s节点名: %s 节点类型: %s 包含%d个子节点',
          [APS, ANode.Name, XNTS[ANode.NodeType], ANode.Count]));
        for j := 0 to ANode.Attrs.Count - 1 do
        begin
          nXNA := ANode.Attrs[j];
          Memo2.Lines.Add(Format('%s|属性名: %s 属性值: %s', [APS, nXNA.Name, nXNA.Value]));
        end;
        for i := 0 to ANode.Count - 1 do
        begin
          case ANode.Items[i].NodeType of
            xntText, xntComment, xntCData:
              Memo2.Lines.Add(Format('%s[%s] 节点值: %s', [APS, XNTS[ANode.Items[i].NodeType], ANode.Items[i].Text]));
            xntNode:
            _ShowNodeInfo(APS + #9, ANode.Items[i]);
          end;
        end;
        Memo2.Lines.Add('');
      end;
    
    var
      nXDOC: TQXML;
      nStr: string;
    begin
      nStr := '你要解析的XML文本';
      nXDOC := TQXML.Create;
      try
        nXDOC.Parse(nStr);
        _ShowNodeInfo('', nXDOC.Items[0]);
      finally
        nXDOC.Free;
      end;
    end;
    
    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3