dedlfix: XML-serialisierung mit PEAR::SOAP - vermeiden von <item>s?

Beitrag lesen

echo $begrüßung;

Ich wage mit meiner geringen PEAR::SOAP-Erfahrung mal zu antworten.
Was verwendest du? NuSoap? ich bin bzgl. SOAP bibliothek offen für alles/neues.

Gar keins. Bei meinen Versuchen blieb ich aber bei PEAR::SOAP hängen. Das schien mir das umfangreichste zu sein. Bei den anderen fehlte immer irgendwas.

Ich müsste der SOAP Library irgendwie sagen können dass er numerische kinder-zweige in einem assoziativen array durch gleichnamige XML-siblings ausdrücken soll (anstatt durch generische items).

Verwende kein Array sondern packe deine Werte einzeln in SOAP_Values und die wiederum in ein SOAP_Value vom Typ SOAPStruct (oder was anderes passendes) und so schachteslt du dir selbst deine Struktur zusammen. Schau dir mal das Beispiel example_types.php im Verzeichnis docs/SOAP/example an.

In Base.php gibt es eine Methode SOAP_Base::_serializeValue(). Dort wird für Arrays in einer foreach-Schleife dein item erzeugt, wenn die Elemente keine SOAP_Values sind. Die sieht verkürzt so aus:

foreach ($value as $array_val)
  if ($this->_isSoapValue($array_val))
    $xmlout_value .= $this->_serializeValue($array_val, $array_val->name, ...);
  else
    $xmlout_value .= $this->_serializeValue($array_val, 'item', ...);

Also, verwende SOAP_Values statt nativer PHP-Variablen und alles wird gut ...

echo "$verabschiedung $name";