Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo



Auteur : Eric Grimois
Version : 06/02/2007
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 minuscules en majuscules (non accentués).
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 : 06/02/2007
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ée.
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 : 06/02/2007
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>


Consultez les autres pages sources


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

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com