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;
    
    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题