Comment puis-je empêcher le comportement par défaut de XSLT de sortir tous les éléments? Simplement dit, je veux ignorer tous les éléments qui ne correspondent pas à mon modèle.XSLT 1.0: ignorer tous les éléments sans correspondance du modèle
J'ai le code XML suivant:
<?xml version="1.0" encoding="UTF-8"?>
<SDHttpMessage>
<Headers>
<Parameter name="Type">text/xml;charset=UTF-8</Parameter>
</Headers>
<Charset>UTF-8</Charset>
<Message>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<Content>
<MyContent>
<A>Text A</A>
<B>Text B</B>
<C>Text C</C>
</MyContent>
</Content>
</soapenv:Body>
</soapenv:Envelope>
</Message>
Et XSLT suivante:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
exclude-result-prefixes="soapenv xsd xsi">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*" />
<xsl:template match="Content/MyContent">
<A><xsl:value-of select="A" /></A>
<B><xsl:value-of select="B" /></B>
<C><xsl:value-of select="C" /></C>
</xsl:template>
sortie souhaitée:
<A>Text A</A>
<B>Text B</B>
<C>Text C</C>
sortie actuelle:
text/xml;charset=UTF-8UTF-8
<A>Text A</A>
<B>Text B</B>
<C>Text C</C>
Je pensais simplement appeler mon modèle à l'intérieur d'un modèle-élément racine:
<xsl:template match="/">
<xsl:call-template name="callMyTemplate" />
</xsl:template>
<xsl:template match="Content/MyContent" name="callMyTemplate">
<A><xsl:value-of select="A" /></A>
<B><xsl:value-of select="B" /></B>
<C><xsl:value-of select="C" /></C>
</xsl:template>
Mais il ne correspond à aucun des éléments alors.
Alors quelle serait la meilleure approche si je veux juste ignorer tous les éléments inégalés?
Merci d'avance.
Etes-vous sûr de vouloir générer un fragment XML sans élément racine? –
Merci pour la remarque, je voulais juste garder l'échantillon aussi basique que possible – CoffeeCups