Como você usa uma variável em xsl ao tentar selecionar um nó?

votos
13

Eu teria pensado que isso seria fácil para o Google, mas eu estive unsucessful.

Eu quero atribuir uma variável o valor de um atributo (fácil até agora), em seguida, usar essa variável para selecionar outro nó com base no valor desse atributo.

Exemplo:

<xsl:variable name=myId select=@id />
<xsl value-of select=//Root/Some/Other/Path/Where[@id='{@myId}']/@Name />

Isso não funciona. Se eu substituir o {@myId} com o valor que está na variável, então ele não encontrar o nó direito, mas doign-lo desta forma não produz nada. Tenho certeza de que estou perdendo algo, ou talvez haja uma maneira diferente de fazê-lo.

O contexto é que não está relacionada com os dados sob diferentes nós de nível superior que compartilham o mesmo valor id para que eu preciso para obter os nós relacionados no meu modelo.

Publicado 07/08/2008 em 22:53
fonte usuário
Em outras línguas...                            


2 respostas

votos
16

Ok, eu finalmente descobri-lo. Problema bobo realmente, eu simplesmente precisava para deixar de fora as citações e as chaves. Um desses momentos em que eu pensei que eu já tentei isso. : D Ah, e eu mal digitado @myId no primeiro exemplo, o código foi realmente US $ myId.

<xsl:variable name="myId" select="@id" />
<xsl value-of select="//Root/Some/Other/Path/Where[@id=$myId]/@Name" />
Respondeu 08/08/2008 em 00:16
fonte usuário

votos
4

Você parece ter ficou confuso com o uso de uma variável (que é apenas US $ variável) e Atributo Valor modelos, que permitem que você coloque qualquer expressão XPath em alguns atributos, por exemplo,

<newElement Id="{@Id}"/>

Eles podem, obviamente, ser combinados, para que possa incluir uma variável em um atributo Template valor, tais como:

<newElement Id="{$myId}"/>
Respondeu 19/08/2008 em 16:19
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more