Bonjour,
J’aimerais récupérer uniquement les balises contenant du texte d’un XML de ce type :
J’ai testé avec différentes méthodes et ce qui se rapproche le plus du résultat que je souhaite obtenir est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <html> <keyword/> <p>Ceci est le 1er bloc</p> <keyword>Ceci est le 1er keyword</keyword> <p>Ceci est le 2ème bloc</p> <keyword/> <p>Ceci est le 3ème bloc</p> <p/> <keyword>Ceci est le 3ème keyword</keyword> <p>Ceci est le 4ème bloc</p> <keyword/> </html>
Résultat
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 <html> <xsl:if test="/html/p != ''"> <xsl:for-each select="/html/p != ''"> <p> <xsl:apply-templates/> </p> <xsl:if test="./following::keyword[1]"> < keyword > <xsl:value-of select="./following::keyword[1]" /> </ keyword > </xsl:if> </xsl:for-each> </xsl:if> </html>
En fait, je n’arrive pas vraiment à placer au bon endroit les valeurs que je recherche, ce problème de contexte est lié à la fonction « for-each ». Ça paraît simple, mais je n'y arrive pas. J’ai essayé d’utiliser des templates sans parvenir à mes fins, l’un de vous pourrait m’aiguiller sur une solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <html> <p>Ceci est le 1er bloc</p> <keyword>Ceci est le 1er keyword</keyword> <p>Ceci est le 2ème bloc</p> <keyword>Ceci est le 3ème keyword</keyword> <p>Ceci est le 3ème bloc</p> <keyword>Ceci est le 3ème keyword</keyword> <p>Ceci est le 4ème bloc</p> </html>
Partager