La feuille de style suivante:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="City[not(@value='Hebron' or @value='Cincinnati')]" />
</xsl:stylesheet>
Sur cette entrée:
<Country value="USA">
<State value="KY">
<City value="Hebron" />
<City value="Lexington" />
<City value="Owensboro" />
</State>
<State value="OH">
<City value="Cincinnati" />
<City value="Columbus" />
<City value="Cleveland" />
</State>
</Country>
le résultat suivant:
<Country value="USA">
<State value="KY">
<City value="Hebron" />
</State>
<State value="OH">
<City value="Cincinnati" />
</State>
</Country>
Cette feuille de style utilise le identity transform pour copier tous, mais les noeuds indésirables à la sortie inchangée.
Un autre exemple
Vous pouvez également supprimer tout élément State
qui ne dispose pas d'une ville souhaitée. Cette feuille de style:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="City[not(@value='Hebron' or @value='Cincinnati')]"/>
<xsl:template
match="State[not(City[@value='Hebron' or @value='Cincinnati'])]"/>
</xsl:stylesheet>
à cette entrée:
<Country value="USA">
<State value="KY">
<City value="Hebron" />
<City value="Lexington" />
<City value="Owensboro" />
</State>
<State value="OH">
<City value="Cincinnati" />
<City value="Columbus" />
<City value="Cleveland" />
</State>
<State value="MO">
<City value="St. Louis" />
</State>
</Country>
Produit:
<Country value="USA">
<State value="KY">
<City value="Hebron" />
</State>
<State value="OH">
<City value="Cincinnati" />
</State>
</Country>
Qu'est-ce qui définit les balises que vous souhaitez conserver? Première dans chaque état? –
Puisque vous avez un tag '', il est implicite que vous aurez d'autres pays, dans lesquels '' pourrait ne pas être approprié (Province, Préfecture, etc). Vous devez spécifier complètement le problème. –
Il peut y avoir plus d'un pays mais pour cet exemple (pas les vrais tags), l'état suffira pour les provinces d'autres pays ... –