Re: utiliser Xercès pour parser un InputStream ou String?

Stéphane Bonhomme <[email protected]>
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Nicolas Delaby wrote:

>>J'ai une petite question, je cherche à retrouver les parents d'un
>>nœud à partir de son xpath: je vous explique mon problème et ce que je
>>pensais faire, s'il vous plait dites moi si je suis sur la bonne voie?
>>    
>>
>
>
>Bonjour, je peux au moins t'aider sur les expressions xpath.
>
>  
>
>>--------------------Je cherche le ok de el3. 
>>Donc avec le xpath /element1[@name="el1"]/element2[@name="el2"]/element3[@name="el3"]/ok
>>
>>    
>>
>
>il y a sûrement un moyen plus simple pour écrire cette requête si tu
>veux juste le ok de el3 :
>
>//ok[parent::element3[@name = 'el3']]
>  
>
Attention avec l'utilisation de // dans les requêtes xpath, l'expression 
que vous proposez n'est pas optimale : en effet pour son évaluation, 
l'ensemble des noeuds ok du document est construit (ce qui implique un 
parcours de *tout* l'arbre du document, puis sur cet ensemble ne sont 
retenus que ceux dont le parent est de type element3 avec un attribute 
name='elt3').

L'expression donnée par Sophie, bien que plus "verbeuse" etait bien plus 
efficace au niveau temps d'évaluation.

Sinon pourquoi ne pas écrire tout votre processus de recherche dans un 
seul xpath :

/element1/element2/element3[@name=/element1[@name="el1"]/element2[@name="el2"]/element3[@name="el3"]/ok] 
?
qui permet directement de retrouver le elt 3 dont l'attribut name est 
égal au ok de elt3 dont l'attr name vaut el3

Cordialement,
Stéphane.

>  
>
>>--------------------Je récupère donc "el33".
>>
>>--------------------Et maintenant je veux retrouver l'element2 et l'element1 parent de "el33".
>>
>>    
>>
>
>pour retrouver element2 je te propose :
> //element2[element3[ok = 'el33']],
>
>et pour element1:
> //element1[element2[element3[ok = 'el33']]]
>
>en espérant que ça te soit utile, pour la partie java je passe mon tour.
>Cdt.
>  
>



-- 
   Stéphane Bonhomme           --           Exselt Services

Formations, Conseil et Réalisations en Ingénierie Documentaire,
            Technologies Web et Logiciels Libres
     [email protected]   -   http://www.exselt.com
        04 76 17 09 40        /      06 88 57 27 08
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.