Salut tout le monde,
A partir de cet exemple:
comment extraire les noeuds se trouvant entre les deux commentaires ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ... <!--debut contenu--> ...node()... <!--Fin contenu--> ....








Salut tout le monde,
A partir de cet exemple:
comment extraire les noeuds se trouvant entre les deux commentaires ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ... <!--debut contenu--> ...node()... <!--Fin contenu--> ....
Normalement les commentaires ne devraient pas servir de délimiteurs...
si c'est le cas alors tu as un problème de conception dans ton XML... il faut que tu revoies sa structure...
ensuite, tu est trop imprécis, quel langage utilises-tu (XSLT ? XPath ?) ? éventuellement quel langage externe et quelle library ? que vex-tu dire par extraire ?
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)








désolé je n'était pas assez précis
donc c'est du xslt appliquer sur du xhtml
j'utilise xslt pour filter les pages xhtml et garder juste les parties du contenu qui m'intéresse
les commentaires sont mes seuls repères, je n'ai donc pas le choix
quelque chose comme :
sauf qu'il faut que je me limitte à <!--Fin contenu-->
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:template match="//comment()[contains(.,'debut contenu')]"> <xsl:copy-of select="following-sibling::node()"/> </xsl:template>
merci pour votre aide
ceci ?
bien entendu, il faut que le commentaire avec le texte 'fin contenu' soit unique...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:template match="//comment()[contains(.,'debut contenu')]"> <xsl:copy-of select="following-sibling::node()[not(contains(./preceding-sibling::comment(), 'fin contenu')) and not(self::comment())]"/> </xsl:template>
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
il faut utiliser certainement le prédicat preceding-sibling mais ça ne semble pas marcher chez moi...bizarre
et puis "//" pour le template match ne sert à rien...








Merci pour votre aide,
Voici mon code :
Je récupère bien mon contenu util mais problème en cas de noeud hiérarchique, exemple : <table><tr><td>....
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
16
17
18
19
20
21
22
23 <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml"> <xsl:copy-of select="//xhtml:head"/> <body text="#000000" bgcolor="#FFFFFF"> <xsl:apply-templates select="//comment()[contains(.,'Debut contenu')]"/> </body> </html> </xsl:template> <!--all--> <xsl:template match="*|text()|@*|comment()"> <xsl:copy> <xsl:apply-templates select="node()|@*|text()|comment()"/> </xsl:copy> </xsl:template> <!--contenu util--> <xsl:template match="comment()[contains(.,'Debut contenu')]"> <xsl:apply-templates select="following::node()"/> </xsl:template> <!--filtrage--> <xsl:template match="node()[preceding::comment()[contains(., 'Fin contenu')]]"/> <xsl:template match="xhtml:a"/>
j'ai un dédoublement de rendu (du text en double)
comment fair pour récupérer un noeud tel quel
j'ai essayémais même problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:apply-templates select="following::node()[not(descendant::node())]"/>
merci encore pour votre aide
Partager