Aller au contenu

[Résolu]XSL et suppression de balises


windu.2b

Messages recommandés

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

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 :D

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...