IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Le 'XML Stylesheet Language : Transformations' (XSLT) > Feuilles XSLT > Modification en recopie d'un XML
        Recopier un XML en modifiant les caractères des contenus
        Recopie d'un XML en supprimant certaines balises et leurs contenus
        Suprimer des balises mais en gardant leur contenu

rechercher
precedent    sommaire    suivant


Auteur : Eric Grimois
Version : 18/04/2006
Recopier un XML en modifiant les caractères des contenus
Ceci n'est possible que pour uniformiser certaines données, et uniquement pour des modifications au caractère près. Pour des sous-chaînes, regardez plutôt du côté de faq La Fonction 'Replace'.

Dans cet exemple, le code permet de recopier un xml mais en passant tous les caractères minuscule en majuscule (non accentuée).
Le XML
<?xml version="1.0" encoding="UTF-8"?>
<racine>
<a titre="Premier">
<it>première partie</it>
</a>
<a titre="Second">
<it>seconde partie</it>
</a>
</racine>
Le XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="node()">
		<xsl:copy>
			<xsl:apply-templates select="node()|@*"/>
		</xsl:copy>
	</xsl:template>
	<xsl:template match="text()">
<xsl:value-of select="translate(.,'abcdefghijklmnopqrstuvwxyzàâäéèêëîïôöûüù','ABCDEFGHIJKLMNOPQRSTUVWXYZAAAEEEEIIOOUUU')"/>
	</xsl:template>
	<xsl:template match="@*">
		<xsl:attribute name="{name()}">
<xsl:value-of select="translate(.,'abcdefghijklmnopqrstuvwxyzàâäéèêëîïôöûüù','ABCDEFGHIJKLMNOPQRSTUVWXYZAAAEEEEIIOOUUU')"/>
		</xsl:attribute>
	</xsl:template>
</xsl:stylesheet>
Le Résultat
<?xml version="1.0" encoding="UTF-8"?>
<racine>
<a titre="PREMIER">
<it>PREMIERE PARTIE</it>
</a>
<a titre="SECOND">
<it>SECONDE PARTIE</it>
</a>
</racine>

Auteur : Eric Grimois
Version : 18/04/2006
Recopie d'un XML en supprimant certaines balises et leurs contenus
Cela permet de filtrer le contenu du XML, afin de ne conserver que l'information utile.

Dans cet exemple c'est la balise aut qui est supprimé
Le XML
<?xml version="1.0" encoding="UTF-8"?>
<racine>
<a titre="Premier">
<aut>titi</aut>
<it>pemière partie</it>
</a>
<a titre="Second">
<it>seconde partie</it>
<aut>toto</aut>
</a>
</racine>
Le XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="node()">
		<xsl:copy>
			<xsl:apply-templates select="node()|@*"/>
		</xsl:copy>
	</xsl:template>
	<xsl:template match="text()">
		<xsl:value-of select="."/>
	</xsl:template>
	<xsl:template match="@*">
		<xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
	</xsl:template>
	<xsl:template match="aut"></xsl:template>
</xsl:stylesheet>
Le Résultat
<?xml version="1.0" encoding="UTF-8"?>
<racine>
<a titre="Premier">

<it>pemière partie</it>
</a>
<a titre="Second">
<it>seconde partie</it>

</a>
</racine>

Auteur : Erwan Amoureux
Version : 19/04/2006
Suprimer des balises mais en gardant leur contenu
Cela peut-être utile pour, par exemple, retirer des balises de mise en forme superflues, ou pour extraire une information condensée.

Exemple avec des balises i, u et b (balises HTML de mise en forme)
Le XML
<?xml version="1.0" encoding="UTF-8"?>
<R>
<chapitre num="1" titre="exemple" >
<para>Ceci est un <b>exemple</b> de texte que l'on souhaite purger
 de ses <i><u>balises </u></i>de style <i><u><b>i,b et u</b> </u></i></para>
</chapitre>
</R>
Le XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="node()">
		<xsl:copy>
			<xsl:apply-templates select="node()|@*"/>
		</xsl:copy>
	</xsl:template>
	<xsl:template match="text()">
		<xsl:value-of select="."/>
	</xsl:template>
	<xsl:template match="@*">
		<xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
	</xsl:template>
	<xsl:template match="i|u|b">
		<xsl:apply-templates select="node()"/>
	</xsl:template>
</xsl:stylesheet>
Le Résultat
<?xml version="1.0" encoding="UTF-8"?>
<R>
<chapitre num="1" titre="exemple">
<para>Ceci est un exemple de texte que l'on souhaite purger
 de ses balises de style i,b et u </para>
</chapitre>
</R>

rechercher
precedent    sommaire    suivant

Consultez les autres pages sources


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.