Dada esta XML, há um XPath que vai me dar o 'teste' e valores 'nome'?

StackOverflow https://stackoverflow.com/questions/97474

  •  01-07-2019
  •  | 
  •  

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>
Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top