
Envoy� par
momolescro
1 2
| //Et ceci pour récupérer le BODY, mais je ne comprends pas trop ce que ma liste va contenir, donc je ne sais pas comment descendre plus bas dans l'arbo
List<Element> BodyElement = racine.getChildren("Body"); |
getChildren() c'est un pluriel. �a veut dire que tu demandes plusieurs choses qui s'appellent "Body".
Toi dans ton document tu as un seul <Body>... Mais �a te regarde. Tu aurais pu en avoir trente.
getChildren() renvoie donc la liste de tous les �l�ments fils de la racine, qui s'appellent "Body".
Dans ton cas, la liste contiendra donc un seul �l�ment, le seul est unique <Body> de ton document.
Il aurait �t� mieux de faire :
Element bodyElement = racine.getChild("Body");
... Mais si tu essaies tu constateras que �a ne marche pas -_-�.
Pourquoi ? Parce que <soap:Body> indique que c'est l'�l�ment <Body> dans le namespace "http://www.w3.org/2003/05/soap-envelope". Or toi, tu demandes <Body> sans aucun namespace, et il n'y a pas �a dans ton document.
Il faudrait donc faire quelque chose du genre :
1 2 3 4 5
| // quelque part dans les propriétés de ta classe :
private static final Namespace SOAP_NAMESPACE = Namespace.getNamespace("http://www.w3.org/2003/05/soap-envelope");
// ailleurs :
Element bodyElement = racine.getChild("Body", SOAP_NAMESPACE); |
... Et �a marche.
Mais �a reste compliqu� d'aller chercher les <Row> � partir de l�.

Envoy� par
momolescro
Pour information, j'ai besoin de r�cup�rer toutes les lignes "Row" pour les d�couper et le stocker en BDD (Ne me reprochez pas le format du fichier XML, c'est celui d'un client)
Si c'est la seule chose qui t'int�resse, tu ferais mieux d'utiliser racine.getDescendants(Filters.element("Row")). Il se chargera lui-m�me de descendre chercher tous les �l�ments <Row>.
Partager