XSL inclui valor sempre na mesma tag do XML

1 resposta
T

Olá Pessoal!

Estou tentando pegar os valores de um XML e inlcuir em um outro XML utilizando XSL.
O processo de inclusão ocorre mais de uma vez durante a utilização do sistema, porém o XSL inclui o valor sempre dentro da mesma tag e não em uma tag nova.

XML (lido):
<F021:taskOutput>
        <F021:FormModel>
            <Texto>
                <Texto0>VALOR</Texto0>
            </Texto>
            <Historico>
                <Historico0></Historico0>
            </Historico>
        </F021:FormModel>
</F021:taskOutput>
XSL:
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 

  <xsl:output method="xml"/>
  <xsl:template match="FormModel">
	    <xsl:element name="Historico"><xsl:value-of select="Texto"/></xsl:element>
  </xsl:template>
  
  <xsl:template match="taskOutput">
    <xsl:element name="Historico" namespace="http://www.example.org/Variables">
	  <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>
XML (resultado):
<Historico xmlns="http://www.example.org/Variables">
    <Historico>VALOR</Historico>
</Historico>
Até aqui tudo bem, porém, quando o sistema tiver que fazer isso novamente eu gostaria que ficasse assim:
<Historico xmlns="http://www.example.org/Variables">
    <Historico>VALOR</Historico>
    <Historico>OUTRO VALOR</Historico>
</Historico>

Como faço para que ele inclua em um nova tag e não sempre dentro da mesma?

Abraço!

1 Resposta

renatosilva

O XSL não inclui em outro arquivo, ele gera esse arquivo. Sugestão: carregue objetos TaskOutput e Historico com os valores atuais, pegue o valor novo de TaskOutput e adicione ao Historico, então persista esse objeto. Você vai usar XStream, JDOM ou algo parecido, e não XSL.

Criado 2 de abril de 2009
Ultima resposta 4 de abr. de 2009
Respostas 1
Participantes 2