Supposons que vous voulez transformer ce XMLTransformer un XML dont les éléments ont plusieurs attributs et utiliser un attribut pour créer de nouveaux éléments
<?xml version="1.0" encoding="UTF-8"?>
<package id="album">
<concept id="tracknumber" value="18"></concept>
<concept id="songtitle" value="Multi Love"></concept>
<concept id="band" value="Unknown Mortal Orchestra"></concept>
</package>
dans ce XML:
<package>
<tracknumber>18</tracknumber>
<songtitle>Multi Love</songtitle>
<band>Unknown Mortal Orchestra</band>
</package>
Ceci est le XSLT point de départ pour transformer le code source XML:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="package[@id='album']">
<package>
<tracknumber>
<xsl:value-of select="concept[@id='tracknumber']" />
</tracknumber>
<songtitle>
<xsl:value-of select="concept[@id='songtitle']" />
</songtitle>
<band>
<xsl:value-of select="concept[@id='band']" />
</band>
</package>
</xsl:template>
</xsl:stylesheet>
Il semble difficile d'obtenir la partie "valeur" du XML ttributes.
C'est une bonne réponse! J'ai simplifié cet exemple pour le rendre plus facile à comprendre. Dans la réalité, le résultat est un peu plus délicat, avec des éléments complexes qui ne suivent aucune logique spécifique autre que les besoins du client. – noitib
Génial! Je pensais que c'était simplifié. Heureux de vous aider. – Parfait