2010-01-12 11 views
4

J'ai trouvé que vous pouvez générer ce dans SOAP en php:En utilisant SOAP pour générer des attributs XML en PHP

<foo bar="blah">12345</foo> 

Avec ceci:

array("foo" => array("_" => 12345, "bar" => "blah")); 

Cependant, la méthode underscore ne semble pas fonctionner lorsque la valeur n'est pas un nombre et une chaîne, mais à la place code xml intégré. Comment feriez-vous cela par exemple?

<foo bar="blah"> 
    <aaa a="b">blah</aaa> 
</foo> 

Ceci est une extension de cette personne à la question: http://www.bigresource.com/Tracker/Track-php-uQwDoUib/

Répondre

11

Je n'ai pas un moyen rapide de tests, mais peut-être cela pourrait fonctionner:

$a = array(
    'foo' => array(
     'bar' => 'blah', 
     'aaa' => array(
      '_' => 'blah', 
      'a' => "b", 
     ), 
    ), 
); 
+0

Oui, ça marche! – Jonah

0

Comment pouvez-vous ajouter un attribut à un nœud qui est la fonction;

$update = $soap->UpdateMember($pRecord); 

ou

$update = $soap->__soapCall('UpdateMember', array($Updates)); 

je dois ajouter namescape ou attribut xmlns au nom de la fonction réelle ici. Je reçois ce qui suit;

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.sample.net/"> 
<SOAP-ENV:Body> 
<ns1:UpdateMember> 
MORE XML HERE 
</ns1:UpdateMember> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

mais j'ai besoin

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.sample.net/"> 
<SOAP-ENV:Body> 
<ns1:UpdateMember xmlns="http://www.sample.net/"> 
MORE XML HERE 
</ns1:UpdateMember> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

besoin d'avoir NS1: UpdateMember xmlns: ns1 = "http://www.sample.net/" ou quelque chose comme ça.

+0

Salut. Avez-vous résolu cela? Je travaille autour de ça, si vous avez une idée, ça pourrait m'aider. Merci! – jmunozco

+0

Probablement, mais pour être honnête je ne me rappelle même pas comment ou où j'ai ce code. – Perspective

Questions connexes