Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

« Escape XML en XSLT » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
Ctate (discussion | contributions)
Aucun résumé des modifications
Ctate (discussion | contributions)
Aucun résumé des modifications
Ligne 7 : Ligne 7 :
</xsl:for-each>
</xsl:for-each>
<xsl:value-of select="'&gt;'" />
<xsl:value-of select="'&gt;'" />
<xsl:apply-templates select="@*|node()" mode="escape" />
<xsl:apply-templates select="node()" mode="escape" />
<xsl:value-of select="concat('&lt;/', name(), '&gt;')" />
<xsl:value-of select="concat('&lt;/', name(), '&gt;')" />
</xsl:template>
</xsl:template>
 
<xsl:template match="@*|text()" mode="escape">
<xsl:template match="text()" mode="escape">
<xsl:copy>
<xsl:value-of select="."/>
<xsl:apply-templates select="@*|node()" mode="escape" />
</xsl:copy>
</xsl:template></syntaxhighlight>
</xsl:template></syntaxhighlight>

Version du 22 novembre 2012 à 06:44

Si tu veut escape XML un element XML dans XSLT comme texte pour voir tous les attributs, les nœuds et les textes, voici un template pour le faire:

	<xsl:template match="*" mode="escape">
		<xsl:value-of select="concat('&lt;', name())" />
		<xsl:for-each select="@*">
			<xsl:value-of select="concat(' ', name(), '=&quot;', ., '&quot;')" />
		</xsl:for-each>
		<xsl:value-of select="'&gt;'" />
		<xsl:apply-templates select="node()" mode="escape" />
		<xsl:value-of select="concat('&lt;/', name(), '&gt;')" />
	</xsl:template>
	
	<xsl:template match="text()" mode="escape">
		<xsl:value-of select="."/>
	</xsl:template>