访问webservice,导入xml至本地数据集

简介:
  1. 创建本地数据集

     clientdataset2.FieldDefs.Clear;;
      with clientdataset2.FieldDefs.AddFieldDef do
      begin
        Name := 'id';
        Size := 10;
        DataType := ftString;
      end;
      with clientdataset2.FieldDefs.AddFieldDef do
      begin
        Name := 'xm';
        size := 10;
        DataType := ftstring;
      end;
      with clientdataset2.FieldDefs.AddFieldDef do
      begin
        Name := 'xb';
        Size := 10;
        DataType := ftString;
      end;
      with clientdataset2.FieldDefs.AddFieldDef do
      begin
        Name := 'nl';
        DataType := ftinteger;
      end;
      with clientdataset2.FieldDefs.AddFieldDef do
      begin
        Name := 'sfzh';
        Size := 10;
        DataType := ftString;
      end;
      with clientdataset2.FieldDefs.AddFieldDef do
      begin
        Name := 'jtzz';
        size := 30;
        DataType := ftstring;
      end;
      clientdataset2.CreateDataSet;
      clientdataset2.open;

  2. 导入xml

    var
      xml:Tnativexml;
      root: TsdElement;
      i:integer;
      ////////////声明soapheader
      aIntf: DataCenterServicesSoap;
      Headers: ISOAPHeaders;
      H: SecuritySoapHeader2;//SecuritySoapHeader2;
    begin
      Try
        clientdataset2.EmptyDataSet;
        xml := Tnativexml.Create(nil);

        ////////////////////////////////////////////////////发送soapheader
        aIntf := (httprio1 as DataCenterServicesSoap);

        H := SecuritySoapHeader2.Create;
        h.Ticket := 'BE2E4F35-CDE9-46A1-844B-9FB2546491B2';

        Headers := (aIntf as ISOAPHeaders);
        Headers.Send(H); //发送Soap Header
       // xml.ReadFromString((httprio1 as DataCenterServicesSoap).getdataasxml(memo1.Text));
        //aIntf.GetInfo; //调用服务
        xml.ReadFromString((httprio1 as DataCenterServicesSoap).GetXML(memo1.Text));
        xml.XmlFormat := xfReadable;
        root := xml.Root;
        for i := 0 to root.NodeCount - 1 do
        begin
          clientdataset2.Append;
          clientdataset2.FieldByName('id').Value := root[i].NodeByName('ID').Value;
          clientdataset2.FieldByName('xm').Value := root[i].NodeByName('xm').Value;
          clientdataset2.FieldByName('xb').Value := root[i].NodeByName('xb').Value;
          clientdataset2.FieldByName('nl').Value := root[i].NodeByName('nl').Value;
          clientdataset2.FieldByName('sfzh').Value := root[i].NodeByName('sfzh').Value;
          clientdataset2.FieldByName('jtzz').Value := root[i].NodeByName('jtzz').Value;
          clientdataset2.Post;
        end;
      finally
        aIntf := nil;
      End;

      xml.Free;
      H.Free;

------------------------------------------------------------------

var
  xml:Tnativexml;
  root: TsdElement;
  i:integer;
  aIntf: DataCenterServicesSoap;
  ////////////声明soapheader
begin
  Try
    clientdatasetxz.EmptyDataSet;
    xml := Tnativexml.Create(nil);

    ////////////////////////////////////////////////////发送soapheader
    aIntf := (httprio1 as DataCenterServicesSoap);
   // roota := xml.root.NodeNew('NewDataset');
    xml.ReadFromString((httprio1 as DataCenterServicesSoap).GetXZZD);
    memo6.lines.text := (httprio1 as DataCenterServicesSoap).GetXZZD;
    xml.XmlFormat := xfReadable;
    root := xml.Root;
    for i := 0 to root.NodeCount - 1 do
    begin
        Memo4.Lines.Add(root[i].Name + #9 + root[i].Value); // root[i] = root.Nodes[i]

         Memo4.Lines.Add( root[i].NodeByName('unitId').Value + #9 + root[i].NodeByName('name').Value); // root[i] = root.Nodes[i]
    end;
    {
    for i := 0 to root.NodeCount - 1 do
    begin
     {
      clientdatasetxz.Append;
      clientdatasetxz.FieldByName('unitid').Value := root[i].NodeByName('unitId').Value;
      clientdatasetxz.FieldByName('name').Value := root[i].NodeByName('name').Value;
      clientdatasetxz.Post;
      }
     {
      memo4.lines.add(root.NodeByName('unitId').Value + ' ' +  root.NodeByName('name').Value);
      // memo4.lines.add(root[i].Nodes[0].Value + ' ' +  root[i].Nodes[1].Value);
    end;
    }

  finally
    aIntf := nil;
  End;

  xml.Free;
  //H.Free;
















本文转自鹅倌51CTO博客,原文链接: http://blog.51cto.com/kaixinbuliao/1440573,如需转载请自行联系原作者


相关文章
|
XML JSON 数据中心
目标检测VOC数据集标注XML文件转EasyDL数据集标注Json格式
目标检测VOC数据集标注XML文件转EasyDL数据集标注Json格式
目标检测VOC数据集标注XML文件转EasyDL数据集标注Json格式
|
1天前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法从 `xmlDoc` 加载 "books.xml",创建一个包含匹配节点的节点列表。该列表可遍历以访问每个节点,实现对 XML 文档的节点访问和导航。
|
1天前
|
XML 存储 JavaScript
XML DOM - 访问节点
使用DOM,可以访问XML文档的每个节点。访问方法包括:通过getElementsByTagName(),遍历节点树和导航节点关系。getElementsByTagName()返回一个Node List,它是节点数组,可用于按索引访问元素,如`x[2]`获取第三个<title>元素。后续章节将进一步探讨Node List。
|
1天前
|
XML JavaScript 数据格式
XML DOM - 访问节点
XML DOM 允许访问每个文档节点。方法包括:`getElementsByTagName()`用于获取指定标签的元素;遍历节点树;及导航节点关系。例如,`getElementsByTagName("title")`返回所有`<title>`元素。在示例中,`x.getElementsByTagName("title")`找到`x`下的`<title>`,而`xmlDoc.getElementsByTagName("title")`则查找整个文档的`<title>`元素。
|
1天前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
186 2
|
1天前
|
XML 数据格式
AXios接受XML格式的webservice并解析成数据格式
AXios接受XML格式的webservice并解析成数据格式
28 2
|
6月前
|
Java Maven
maven 项目依赖自动导入失败(pom.xml 文件爆红),解决--手动导入
maven 项目依赖自动导入失败(pom.xml 文件爆红),解决--手动导入
156 0
|
8月前
|
XML Java 数据格式
spring配置文件可以通过一个总的xml文件导入其他xml文件配置
spring配置文件可以通过一个总的xml文件导入其他xml文件配置
|
12月前
|
XML 存储 自动驾驶
无人驾驶之交通识别项目--基于xml和图片生成自己的数据集txt用于yolo4训练
无人驾驶之交通识别项目--基于xml和图片生成自己的数据集txt用于yolo4训练
无人驾驶之交通识别项目--基于xml和图片生成自己的数据集txt用于yolo4训练
|
Java 数据库
基于Springboot外卖系统03:pom.xml导入依赖+数据库配置文件+Boot启动类+静态资源映射
基于Springboot外卖系统03:pom.xml导入依赖+数据库配置文件+Boot启动类+静态资源映射
149 0