windu.2b Posté(e) le 14 avril 2009 Partager Posté(e) le 14 avril 2009 Bonjour à tous, Je dois traiter un flux XML en en retirant certaines balises, et on me demande de faire ça en XSL-T plutôt qu'en DOM (pour permettre ensuite l'ajout/modification des feuilles XSL, sans avoir à toucher au code). J'ai donc par ex. ce flux XML : <?xml version="1.0" encoding="UTF-8"?> <response> <folder><![CDATA[SF_INBOX]]></folder> <nbMails>1</nbMails> <nbUnreadMessage>1</nbUnreadMessage> <mailHeader> <id> <folder><![CDATA[SF_INBOX]]></folder> <msgId>1</msgId> </id> <priority>3</priority> <subject><![CDATA[Bienvenue sur l\'E-mail OOPro!]]></subject> <from><![CDATA[noreply@noreply.myorangeoffice.com]]></from> <to><![CDATA[usermag-02@orangepro.fr]]></to> <cc></cc> <replyTo><![CDATA[noreply@noreply.myorangeoffice.com]]></replyTo> <phoneTo></phoneTo> <size>1481</size> <date>2009-02-10T12:04:48</date> <unread>TRUE</unread> <flagged>FALSE</flagged> <replied>FALSE</replied> <hasAttachment>FALSE</hasAttachment> <isCalendarEvent>false</isCalendarEvent> <oMessageType>email</oMessageType> </mailHeader> <sortBy>1</sortBy> <status> <code>100</code> <mnemo>OK</mnemo> </status> </response> Et je dois pour l'instant en retirer les balises "flagged" et "replied" (tout le reste ne bouge pas d'un iota). Ma question est donc : est-il possible de dire en XSL que l'on veut tout prendre sauf certaines balises ? Si oui, comment car google ne semble pas vouloir être mon ami. Merci bien. Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 14 avril 2009 Auteur Partager Posté(e) le 14 avril 2009 Oki, je me réponds à moi-même car j'ai finalement trouvé la solution : en fait, il fallait jouer avec "xsl:if", tout simplement. Le solution ressemble donc à ceci : <xsl:template match="@*"> <xsl:copy /> </xsl:template> <xsl:template match="*"> <xsl:if test="( name() != 'flagged' ) and ( name() != 'replied' )"> <xsl:element name="{name()}"> <xsl:apply-templates select="* | text() | @*" /> </xsl:element> </xsl:if> </xsl:template> Sur ce, je clos le sujet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.