我是网络服务领域的新手。我正在使用c#创建Web服务和php以使用该服务。当我传递简单的字符串消息时,它工作正常但是当我返回数据表时,生成的xml有点复杂,当我从php调用它时,它会生成一个奇怪的输出,我不明白如何从那。我使用的代码如下:
c#Web服务代码
[WebMethod]
public DataSet Get_SAC(string k)
{
DataTable dt = Get("select * from SACMaster", "SacMaster");
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
注意:函数Get(字符串查询,字符串TableName)用于执行查询并从数据库中获取数据并设置数据表的名称。
我从此方法获得的XML
<DataSet xmlns="http://tempuri.org/">
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="SacMaster">
<xs:complexType>
<xs:sequence>
<xs:element name="slno" type="xs:int" minOccurs="0"/>
<xs:element name="serviceName" type="xs:string" minOccurs="0"/>
<xs:element name="sacNo" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<SacMaster diffgr:id="SacMaster1" msdata:rowOrder="0">
<slno>1</slno>
<serviceName>HOUSEKEEPING/PANTRY BOY</serviceName>
<sacNo>998533</sacNo>
</SacMaster>
<SacMaster diffgr:id="SacMaster2" msdata:rowOrder="1">
<slno>2</slno>
<serviceName>SECURITY GUARD</serviceName>
<sacNo>998525</sacNo>
</SacMaster>
<SacMaster diffgr:id="SacMaster3" msdata:rowOrder="2">
<slno>3</slno>
<serviceName>Other Employment</serviceName>
<sacNo>998519</sacNo>
</SacMaster>
</NewDataSet>
</diffgr:diffgram>
</DataSet>
使用网络服务的PHP代码
<?php
$client = new SoapClient("http://localhost:49439/Service1.asmx?WSDL");
$params1 = array( 'k' => '202');
$result2 = $client->Get_SAC($params1)->Get_SACResult;
print_r($result2);
?>
PHP代码的输出
stdClass Object([schema] =&gt; [any] =&gt; 1HOUSEKEEPING / PANTRY BOY9985332SECURITY GUARD9985253Other Employment998519)
现在我的问题是如何将此输出转换为数组,如果生成XML文件存在问题,我该如何解决问题。
我想要的结果是
slno |Description |Code
----------------------------------------
1 |HOUSEKEEPING/PANTRY BOY |998533
2 |SECURITY GUARD |998525
3 |Other Employment |998519