XSLT para adicionar novos elementos ao elemento raiz de um XML
Quero adicionar alguns elementos no final de um documento XML, logo antes do fechamento do nó raiz, e estou usando um XSL para fazer a transformação.
O XML de origem pode conter qualquer nó, subnó etc., que não importe. Tudo nele deve ser copiado para o documento transformado, além de outros elementos serem adicionados.
Sou totalmente novo em XSL, XSLT e XPath, por isso estou cometendo erros.
Todos os meus XSLs são assim:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" />
<!-- tried directives -->
</xsl:stylesheet>
Foi isso que encontrei e tentei, mas sem sucesso.
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
<my-el></my-el>
</xsl:template>
Eu li que é o modelo de identidade, então pensei em usá-lo para copiar tudo, além de um elemento adicional; mas isso adiciona<my-el></my-el>
dentro de cada elemento do documento de origem.
Depois de ler alguns tutoriais do w3schools sobreXSLT eXPath, Tentei com:
<xsl:template match="/">
<xsl:copy-of select="."></xsl:copy-of>
<my-elem />
</xsl:template>
Mas acrescenta<my-elem />
após a tag de fechamento do elemento raiz.
Você pode me ajudar?
Antecedentes: estou brincando com oxml-maven-plugin
adicionar alguma configuração a um aplicativo da webweb.xml
arquivo, acionado por um perfil. Quero que todo o XML existente no arquivo seja copiado para o documento de saída, além de desejar adicionar alguns elementos (estáticos serão suficientes por enquanto) a ele.
Aqui está a fonteweb.xml
Arquivo:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>My Project</display-name>
<welcome-file-list>
index.jsp
</welcome-file-list>
</web-app>
Eu quero alcançar algo como o que foi solicitado emessa questão, mas os novos nós precisam ser adicionados ao elemento raiz (ou seja, consulteum comentário a essa pergunta resposta)