[XPath] : récupération de données de deux noeuds
Bonjour,
Voici mon fichier XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<?xml version="1.0" encoding="UTF-8"?>
<datasets>
<dataset name="Entete" type="1">
<record date="05/04/2007" ref="2007-878-1" chauffeur="Nom du chauffeur" />
</dataset>
<dataset name="Client" type="1">
<record nom="nom" adresse1="ADRESSE1" adresse2="ADRESSE2" code_postal="CP" commune="COMMUNE" />
</dataset>
<dataset name="AgrImmob" type="n">
<record num="0090" rep="N" />
<!-- ... -->
</dataset>
<dataset name="Palettes" type="n">
<record num="2614" vrac="N" verif="O" />
<record num="2862" vrac="O" verif="O" />
</dataset>
<dataset name="Pupitres" type="n">
<record num="1167" vrac="N" verif="O" />
<record num="1760" vrac="N" verif="O" />
<record num="5627" vrac="N" verif="O" />
<record num="9999" vrac="O" verif="N" />
</dataset>
</datasets> |
Avec une seule expression XPATH, je souhaiterais récuperer les numéros des palettes et des pupitres qui ont été vérifiés (verif="O")
Comment faire ?
J'ai essayé d'appliquer le code de cette discussion:
http://www.developpez.net/forums/showthread.php?t=98529 à mon exemple, ce qui donne (filtre XSLT pour OOo) :
Code:
1 2 3 4 5 6 7 8 9 10
|
<fus:template name="section_N11235">
<text:p text:style-name="P26">
<fus:value-of select="@num"/>
</text:p>
</fus:template>
<!-- ... -->
<fus:for-each select="/datasets/dataset[@name='[starts-with(name(),'P')]']/record[@verif='O']">
<fus:call-template name="section_N11235"/>
</fus:for-each> |
Mais ça ne marche pas, OOo plante même lors de l'import d'un fichier XML.
Quelqu'un peut-il m'aider ?
Merci beaucoup !