php中如何处理'DataSet'数据结构?

问题描述 投票:0回答:1

我正在尝试从 php 调用肥皂网络服务。

Web服务返回一个ADO.NET数据集结构。 PHP 中有没有可以处理这种数据结构的库?如果有,它们叫什么?在哪里可以找到它们?如果没有,请随时提供提示吗?

到目前为止,我已经有了这个(使用 ActiveMQ 和 NuSoap 库):

/**
 * Create a new service instance
 * Provide ActiveMQ uri and the extended class name
 **/
$client = new Client('tcp://localhost:61613?tcpNoDelay=false', 'test');

/**
 * New service reference
 **/
$service = new ServiceProxy($client, 'ServiceName');

/* Service call */
$result = $service->get_clients();

get_clients() 是一个执行实际服务调用并获取 DataSet 结构作为返回的方法。我如何操纵这个返回值?

例如,在 .NET 中,有一个 DataSet 类。 ADO.NET 数据集包含一个或多个 ADO.NET 数据表,而这些数据表又由一个或多个 ADO.NET 数据列和数据行组成,这些数据列和数据行以集合(数组)形式返回。

一个简单的代码示例,其中 DataSet 仅包含一个 DataTable,可以是:

/**
 * Here, the val variable will contain the data positioned in the 
 * first field of the first DataRow of the first DataTable 
 **/
string val = dataset.Table[0].Rows[0].ItemArray[0];

我想在 PHP 中做同样的事情,但我需要帮助。

php .net nusoap
1个回答
1
投票

我建议您尝试更多地了解您正在使用的数据的结构。它很可能是某种形式的 JSON 或 XML,可以通过大量 PHP xml 和 json 处理库进行操作。

您的第一步是查看您的请求返回的数据并确定其格式。 Microsoft 在 MSDN 库中此处详细记录了 ADO.NET API 的数据集。这应该可以帮助您理解检查数据时所看到的内容。某些数据提供程序允许您以不同的格式访问相同的数据,具体取决于参数或一系列类似的函数。您有提供商 API 的文档吗?

接下来,在确定格式并破译数据集架构的细节之后,您需要一个类来操作数据。如果您正在处理符合已发布标准的内容,则可以使用 simpleXML、JSON 或 DOMXPath 之类的内容。此类应将数据存储在受保护的成员变量中,并提供检查、迭代、加载、刷新、搜索等方法。您应该在此处参考 PHP 手册的函数参考以获取帮助,并编写您需要的任何函数。我会一般性地编写它来处理任何类似的数据集并派生一个类以准确地公开特定应用程序所需的数据。

另一种方法是用 .net 语言编写 COM 组件来访问和操作数据,并通过 PHP 的 COM 扩展导入其函数。如果数据格式是一种奇怪的 Microsoft 专有格式,我想我会选择这种选择。

第三种可能的方法仅在您对服务器具有编程访问权限时才有效。如果您可以调整服务提供商以符合规范,Microsoft 已经发布了一个互操作性工具包,该工具包应该充当 .net 服务和 PHP 客户端之间的桥梁,使用代理对象层将 ado.net 数据公开给 PHP 脚本。他们经常使用 RESTful 这个词,但我不太确定他们的意思。在 Microsoft 互操作性总部查看适用于 PHP 的 OData SDK 此处(此处还有有关 PHP 以及其他 Microsoft 平台和产品(例如 Azure、silverlight、Bing 等)的信息)。正如我所说,我认为您需要数据提供者发出符合其标准的数据。也许已经是这样了。没有架构我无法判断!如果是这样,那么这是您最好的选择。 祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.