Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
XML (resultado):
<Historico>
<Historico>VALOR</Historico>
</Historico>
Até aqui tudo bem, porém, quando o sistema tiver que fazer isso novamente eu gostaria que ficasse assim:
<Historico>
<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!
Silverfox,
Primeiro, obrigado pela resposta!
Cheguei ao seguinte código:
<?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:for-each select="Texto">
<xsl:element name="Historico">
<xsl:value-of select="Texto0"/>
</xsl:element>
</xsl:for-each>
</xsl:template>
<xsl:template match="taskOutput">
<xsl:element name="Historico">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>O resultado foi esse:
<Historico>
<Historico>VALOR</Historico>
<Historico>OUTRO VALOR</Historico>
</Historico>
Porém, em outro ponto da execução do sistema, quando preciso fazer isso novamente ele altera o XML e não inserindo uma nova tag.
<Historico>
<Historico>MAIS OUTRO VALOR</Historico>
</Historico>
Acredito que o problema esteja ocorrendo por isso. O fato de eu chamar em momentos diferentes o XSL.
Alguém sabe como me ajudar?
Em qual ponto exatamente teria um link para vermos?
---
Tópico Movido:
Outras Linguagens de Programação http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Webstandards: CSS / XML / XHTML / HTML
Você vai ter que usar:
<xsl:for-each select="[SEU NÓ]">
Tente estudar o link:
http://forum.imasters.com.br/index.php?showtopic=293324
Atenciosamente Silverfox.