[ORBEON]Parser une réponse SOAP
Bonjour à tous
J'utilise Orbeon pour pouvoir interroger un site sharepoint à l'aide de requête SOAP
Tout fonctionne bien, j'écris ma requête dans une instance, dans la soumission je remplace l'instance par la réponse et ainsi je vois la réponse.
Cette réponse est assez verbeuse. C'est pour cela que j'aimerai la parser afin de récupérer les éléments qui m'intéressent. Or je n'arrive pas à accéder à la réponse. J'aurai besoin d'aide pour le faire
Voici mon code :
La requête :
Code:
1 2 3 4 5 6 7
| <xforms:instance id="GetListCollection-request">
<soapenv:Envelope>
<soapenv:Body>
<soap:GetListCollection/>
</soapenv:Body>
</soapenv:Envelope>
</xforms:instance> |
Une instance pour la réponse (vide au départ):
Code:
1 2 3
| <xforms:instance id="response">
<dummy/>
</xforms:instance> |
La soumission :
Code:
1 2 3 4 5 6 7
| <xforms:submission id="GetListCollection-submission" method="post"
action="http://site/{instance('params')/site}/_vti_bin/Lists.asmx"
ref="instance('GetListCollection-request')" replace="instance" instance="response"
xxforms:username="{instance('params')/username}"
xxforms:password="{instance('params')/password}"
xxforms:domain="{instance('params')/domain}"
mediatype="application/soap+xml; action=http://schemas.microsoft.com/sharepoint/soap/GetListCollection"/> |
Je peux donc visualiser la réponse en choisissant l'instance response mais j'aimerai la mettre en forme (parsage + résultat dans un tableau). J'ai donc mis un tableau pour accueillir cette réponse
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <xforms:group model="ws" ref="instance('response')" appearance="xxforms:fieldset">
<xhtml:table border="1">
<xhtml:tr>
<xhtml:td>
<xforms:input ref="instance('response')/Lists/List">
<xforms:label ref="@ID"/>
<xforms:label>ID: </xforms:label>
</xforms:input>
</xhtml:td>
</xhtml:td>
</xhtml:table>
</xforms:group> |
mais rien à faire, je ne récupère pas l'id :(
Pour info, la réponse ressemble à ça :
Code:
1 2 3 4 5 6 7 8
| <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetListCollectionResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<GetListCollectionResult>
<Lists>
<List DocTemplateUrl="" DefaultViewUrl="/domain/Lists/Dossier1/AllItems.aspx" MobileDefaultViewUrl="" ID="{1260D61F-3A43-4B01-8006-7CA4E7BDDCAE}" ... />
<List DocTemplateUrl="" DefaultViewUrl="/domain/Lists/Dossier2/AllItems.aspx" MobileDefaultViewUrl="" ID="{DC3620EF-FE03-40A3-BCCC-523E0B9F7044}" ... />
... |
EDIT: sinon il n'y aurait pas moyen d'enregistrer la réponse dans un fichier xml dans quel cas, je saurai faire