Ich nehme ein altes Projekt auf, das SOAP und WSDL verwendet, etwas, mit dem ich nicht so vertraut bin. Ich habe die folgende Datenstruktur in der WSDL definiert (in diesem Beispiel vereinfacht):Konvertieren eines PHP-Arrays in eine SOAP-Struktur
<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>
Das Projekt wird mit nusoap, ein Teil meiner PHP wie folgt aussieht:
$payment['ProviderData'] = array(
'Field' => array(
'Name' => 'Foo',
),
);
die in der Lage ist zu produzieren die folgende (wiederum vereinfacht hier):
<payment>
<ProviderData>
<Field Name="Foo" />
</ProviderData>
</payment>
ich bin nicht sicher, welches Format meine PHP-Array in sein sollte, um XML zu erzeugen, die wie folgt aussieht:
<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>
Ich habe versucht, einen Schlüssel Einstellung Value
genannt, !Value
und andere Variationen, ohne Erfolg.
Jede Hilfe wäre willkommen. Vielen Dank.
Warum nicht 'XMLWriter' verwenden? http://php.net/manual/en/book.xmlwriter.php – JustOnUnderMillions
Weil es ein Legacy-Projekt ist, in der Produktion und ich möchte nicht mehr als nötig ändern müssen. – SteveEdson
Sie verwenden also eine Nusoap-Funktion, um das XML aus dem Array zu generieren? Oder eine selbstgemachte Funktion? http://StackOverflow.com/a/6743230/4916265 – JustOnUnderMillions