Dada esta XML, há um XPath que vai me dar o 'teste' e valores 'nome'?
Pergunta
Eu preciso para obter o valor do atributo 'teste' na xsl: quando tag, e o atributo 'nome' no xsl: tag call-template. Este XPath me fica bem perto:
..../xsl:template/xsl:choose/xsl:when
Mas isso só retorna os elementos 'quando', não os valores de atributos exatas que eu preciso.
Aqui está um trecho do meu XML:
<xsl:template match="field">
<xsl:choose>
<xsl:when test="@name='First Name'">
<xsl:call-template name="handleColumn_1" />
</xsl:when>
</xsl:choose>
Solução
Steve Cooper respondeu a primeira parte. Para a segunda parte, você pode usar:
.../xsl:template/xsl:choose/xsl:when[@test="@name='First Name'"]/xsl:call-template/@name
que irá corresponder especificamente a xsl: quando em seu trecho acima. Se você quer que ele corresponder geralmente, então você pode usar:
.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name
Outras dicas
quer .../xsl:template/xsl:choose/xsl:when/@test
Se você quiser realmente obter o valor 'Nome' fora do atributo de teste, você está fora de sorte - o conteúdo dentro do atributo é apenas uma seqüência, e não um pedaço de xml, para que você possa' t XPath-lo. Se você precisa para conseguir isso, você deve usar manipulação de string (por exemplo, substring) para obter o conteúdo certo