需要有关使用Delphi XE从Web服务检索的xml填充网格的指导

时间:2012-03-14 05:56:32

标签: delphi delphi-xe2

这里有点丢失...... 使用Delphi XE2跨平台(Win / OSX),我想通过调用RESTful服务来检索一些XML,解析它,然后在可滚动的网格控件中显示所选元素。换句话说,我需要将传入的XML视为数据包并将其连接到网格。

我可以使用TidHTTP组件在此时检索XML并将其放入备忘录控件中以进行检查;一切看起来都不错但是,我不明白将其连接到网格的最佳方法。在以OSX作为目标平台的Firemonkey模式下运行时,网格类型似乎不包含数据感知类型。我实际上并不需要与数据源本身的实时连接,因为网格内容将是只读的,所以如果必须的话,我愿意手动填充网格。什么是最简单的方法来摄取XML并将其放入我的网格中?

可能是愚蠢的问题,但XE2有很多面向网络的控件和技术,我只是丢失了。谢谢!

2 个答案:

答案 0 :(得分:1)

您应该将XML转换为对象列表,然后使用LiveBinding将其连接到网格。这是一个两步的过程。你会发现每个步骤都有很多例子。

答案 1 :(得分:0)

“几乎”无代码的方法是使用XSLT和TClientDataSet:

  • 使用XSL
  • 将传入的XML转换为兼容TClientDataSet的XML数据包
  • 在TClientDataSet中加载XML数据包
  • 通过迭代数据集的行和列来填充网格

XSLT是一种用于XML的瑞士军刀 - 它是一种(基于XML的)语言,用于将XML文档转换为其他格式(HTML,纯文本,PDF ......)。

此解决方案的优点是不需要编写和实例化中间代码(对象) - 它是读取HTML响应并转换为数据集的快捷方式。

在网上快速搜索this example


但是我还没有检查是否已经在Delphi for OSX中使用XSLT。