transformar apenas os elementos especificados, deixando cair o resto
Pergunta
Eu estou tentando desenvolver uma folha de estilo XSLT que vai transformar um XML em outro, mantendo em vista:
- Por padrão, o estilo deve exibir nada para cada elemento (nem mesmo o texto).
- Se houver uma correspondência modelo explícita para um elemento, em seguida, copiar esse elemento, é atributos e todos os seus sub-elementos (e seus atributos).
Em outras palavras, transformar apenas os elementos explicitamente especificado identidade.
Solução
Bem, para não fazer nada para a maioria, certamente, algo como:
<xsl:template match="/*">
<xsl:copy>
<xsl:apply-templates select="*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates select="*"/>
</xsl:template>
Em seguida, adicione partidas para o que você do quer:
<xsl:template match="Foo | Bar">
<xsl:copy-of select="."/>
</xsl:template>
No entanto, parece que um muito exigência incomum. Normalmente você simplesmente usar partidas que navegar com o conteúdo conhecido através do conhecimento do xml.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow