Bonjour, je voudrais savoir comment extraire un contenu bien précis dans SOAPBody. extractContentAsDocument dont le type de retour est Document ne fais pas l'affaire. Quelqu'un a une idée s'il vous plait.
Bonjour, je voudrais savoir comment extraire un contenu bien précis dans SOAPBody. extractContentAsDocument dont le type de retour est Document ne fais pas l'affaire. Quelqu'un a une idée s'il vous plait.
Ben, après tu travailles sur le Document, banane -_-°.
Le plus rapide serait de chercher dans ce Document avec XPath. La FAQ XML-Java décrit comment utiliser XPath.
En gros, si tu as un truc genre :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"> <soap:Body xmlns:t="http://truc.org/machin"> <t:truc>bidule</t:truc> </soap:Body> </soap:Envelope>
Et que tu veux récupérer ce qu'il y a dans <t:truc>, ce sera comme ça :
Personnellement, j'ajouterais JDOM dans la mêlée. Ça bouffe de la mémoire et du temps, mais il est tout de même bien plus simple que tout ce bordel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 // construire le contexte final String NS_PREFIX = "t"; final String NS_URI = "http://truc.org/machin"; XPathFactory factory = XPathFactory.newInstance(); XPath xpathContext = factory.newXPath(); // définir les namespaces xpathContext.setNamespaceContext(new NamespaceContext() { public String getNamespaceURI(String prefix){ if(NS_PREFIX.equals(prefix)){ return NS_URI; } return null; } public String getPrefix(String namespaceURI){ if(NS_URI.equals(namespaceURI)){ return NS_PREFIX; } return null; } public Iterator<?> getPrefixes(String namespaceURI){ return null; // inutile } }; // construire l'expression XPath XPathExpression xpath = xpathContext.compile("//t:truc"); // appliquer le XPath au document, pour récupérer la donnée voulue String truc = xpath.evaluate(document); System.out.println(truc);
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Merci beaucoup. Généreuse réponse
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager