|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : juillet 2009 Messages : 39 ![]() |
Bonjour,
Est-ce-que quelqu'un peut m'aider. je veut parcourir une fichier XML. Le problème est que mon code avec du xml simple comme : Code :
Alors que si j'ajoute dans les nœuds certain attributs comme eanucc:,sh: comme ceci : Code :
j'utilise Xpath pour parcourir mon XML. Merci d'avance pour tout aide. |
||||
|
|
00
|
|
|
#2 |
![]() ![]() |
Ces choses ne sont pas des attributs mais des préfixes. Les préfixes servent à placer l'élément qu'ils préfixent dans un namespace.
C'est à ça qu'ils servent. Ils doivent être utilisés pour ça et en aucun autre cas. Si tu déroges à cette règle, xPath, XSL et un bon paquet d'outils ne fonctionneront pas. Ton exemple ne peut pas marcher car il est invalide avec les namespaces : tes préfixes n'ont pas été associés à un namespace avec xmlns. Renseigne-toi sur les namespaces en XML, et normalement tu devrais comprendre, ce qui n'allait pas, ce qu'il faut faire pour que ça aille, et comment réparer tes xPath. |
|
|
00
|
|
|
#3 | ||
![]() ![]() Grégory RochePublishing Inscription : octobre 2009 Messages : 1 424 ![]() |
Bonjour,
après t'être documenter, par exemple en consultant la fac, tu doit obtenir un code similaire à : Code :
|
||
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juillet 2009 Messages : 39 ![]() |
Bonjour;
Merci bien pour vos réponses. Mais je veux ajouter que mon XML est prédéfinit et je peu pas le changer. Je doit chercher à le parcourir sans ajouter ou éliminer quelque chose. je voit pa donc que voulait dire polymorphisme par "tu doit obtenir un code similaire" |
|
|
00
|
|
|
#5 |
![]() ![]() |
Il veut dire que les préfixes doivent être déclarés avec la construction xmlns:prefixe comme il l'a montré dans son exemple.
Il est très probable que le XML qu'on te fournit a des déclarations de ce genre. Si ce n'est pas le cas, alors il est assez mal fichu et ça va être compliqué de s'en servir. Mais cherche pas, tu dois d'abord apprendre à te familiariser avec les namespaces et les préfixes en XML. Sans une certaine compréhension de la chose, on ne peut pas se poser les bonnes questions. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juillet 2009 Messages : 39 ![]() |
Bonjour thelvin ,
Je cherché dans le net. Alors ma compréhension du fonctionnement des namespace ne m'a pas beaucoup aidé à trouver le bon chemin à fournir dans Xpath afin de récupérer des données. alors si vous connaissez un site ou une ressource qui peut m'aider je serai très reconnaissante. Merci d'avance. |
|
|
00
|
|
|
#7 |
![]() ![]() |
Normalement tu as maintenant compris qu'il faut :
- Déclarer les namespaces et les associer à un préfixe. - Utiliser le préfixe en question devant le nom de l'élément. En xPath, il s'agit donc de préfixer les éléments tout pareil. Les différences : - Il n'y a pas de "namespace par défaut" en xPath. Si on ne met pas de préfixe, c'est que l'élément n'est pas dans un namespace. Autrement dit, si l'élément est dans un namespace, alors il doit être préfixé, un point c'est tout. - Les préfixes doivent être déclarés en dehors de l'expression xPath. Où, ça dépend de la technologie utilisée. En XSLT, il suffit de déclarer les préfixes à la racine de la stylesheet, et ils seront utilisables dans les expressions xPath. |
|
|
10
|
|
|
#8 | ||||
|
Invité de passage
![]() Inscription : juillet 2009 Messages : 39 ![]() |
Merci Thelvin;
je vous donne mon code afin que tu me comprend mieux. Voici mon XML Code :
Code :
Merci |
||||
|
|
00
|
|
|
#9 | |
![]() ![]() |
Il devrait : eanucc n'a pas été déclaré.
Citation:
Arrivé à ce point-là tu devrais te rendre compte que tu n'as jamais eu l'occasion de le faire, et que c'est un problème puisque c'est obligatoire, non ? Cela se fait avec la méthode XPath.setNamespaceContext(). Il faut définir une classe qui implémente NamespaceContext et indique les namespaces à déclarer. (Note : utiliser JDOM est beaucoup plus facile que juste le DOM de Java.) |
|
|
|
10
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2009 Messages : 39 ![]() |
Ok merci beaucoup pour toute les informations Thelvin.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com