将 PHP 数组转换为 SOAP 结构
Converting a PHP array to a SOAP structure
我正在选择一个使用 SOAP 和 WSDL 的旧项目,这是我不太熟悉的东西。我在 WSDL 中定义了以下数据结构(在此示例中进行了简化):
<s:complexType name="RequestPayment">
<s:sequence>
<s:element minOccurs="0" name="ProviderData" type="s0:ArrayOfFieldPairOfNameString"/>
</s:sequence>
<s:attribute name="CancelURL" type="s:string"/>
<s:attribute name="ReturnURL" type="s:string"/>
</s:complexType>
<s:complexType name="ArrayOfFieldPairOfNameString">
<s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="Field" nillable="true" type="s0:PairOfNameString"/>
</s:sequence>
</s:complexType>
<s:complexType name="PairOfNameString">
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="Name" type="s:string" use="required"/>
</s:extension>
</s:simpleContent>
</s:complexType>
该项目正在使用 nusoap,我的一部分 PHP 看起来像:
$payment['ProviderData'] = array(
'Field' => array(
'Name' => 'Foo',
),
);
能够生成以下内容(这里再次简化):
<payment>
<ProviderData>
<Field Name="Foo" />
</ProviderData>
</payment>
我不确定我的 PHP 数组应该采用什么格式,以便生成如下所示的 XML:
<payment>
<ProviderData>
<Field Name="name 1">value 1</Field>
<Field Name="name 10">value 10</Field>
<Field Name="name 2">value 2</Field>
</ProviderData>
</payment>
我试过设置一个名为 Value
、!Value
和其他变体的密钥,但都没有成功。
如有任何帮助,我们将不胜感激。谢谢。
最好的解决方案是使用 WSDL php 生成器作为 PackageGenerator 项目,因为您不会想知道如何构建请求
逆向计算后(将XML例子转换成PHP),你想要的格式是:
$payment['ProviderData'] = array(
'Field' => array (
0 =>
array (
'!Name' => 'Foo',
'!' => 'Bar',
),
1 =>
array (
'!Name' => 'Amount',
'!' => '98',
),
)
);
我正在选择一个使用 SOAP 和 WSDL 的旧项目,这是我不太熟悉的东西。我在 WSDL 中定义了以下数据结构(在此示例中进行了简化):
<s:complexType name="RequestPayment">
<s:sequence>
<s:element minOccurs="0" name="ProviderData" type="s0:ArrayOfFieldPairOfNameString"/>
</s:sequence>
<s:attribute name="CancelURL" type="s:string"/>
<s:attribute name="ReturnURL" type="s:string"/>
</s:complexType>
<s:complexType name="ArrayOfFieldPairOfNameString">
<s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="Field" nillable="true" type="s0:PairOfNameString"/>
</s:sequence>
</s:complexType>
<s:complexType name="PairOfNameString">
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="Name" type="s:string" use="required"/>
</s:extension>
</s:simpleContent>
</s:complexType>
该项目正在使用 nusoap,我的一部分 PHP 看起来像:
$payment['ProviderData'] = array(
'Field' => array(
'Name' => 'Foo',
),
);
能够生成以下内容(这里再次简化):
<payment>
<ProviderData>
<Field Name="Foo" />
</ProviderData>
</payment>
我不确定我的 PHP 数组应该采用什么格式,以便生成如下所示的 XML:
<payment>
<ProviderData>
<Field Name="name 1">value 1</Field>
<Field Name="name 10">value 10</Field>
<Field Name="name 2">value 2</Field>
</ProviderData>
</payment>
我试过设置一个名为 Value
、!Value
和其他变体的密钥,但都没有成功。
如有任何帮助,我们将不胜感激。谢谢。
最好的解决方案是使用 WSDL php 生成器作为 PackageGenerator 项目,因为您不会想知道如何构建请求
逆向计算后(将XML例子转换成PHP),你想要的格式是:
$payment['ProviderData'] = array(
'Field' => array (
0 =>
array (
'!Name' => 'Foo',
'!' => 'Bar',
),
1 =>
array (
'!Name' => 'Amount',
'!' => '98',
),
)
);