xsl variable example create xslt

variable - xslt introduction



¿Cómo se usa una variable en xsl cuando se intenta seleccionar un nodo? (2)

Ok, finalmente lo descubrí. Tonto problema realmente, simplemente necesitaba dejar de lado las comillas y los frenos. Una de esas veces cuando pensé que ya había intentado eso. : D Oh, y escribí mal @myId en el primer ejemplo, el código era realmente $ myId.

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

Pensé que esto sería fácil para Google, pero no tuve éxito.

Quiero asignarle una variable al valor de un atributo (fácil hasta el momento) y luego usar esa variable para seleccionar otro nodo en función del valor de ese atributo.

Ejemplo:

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

Eso no funciona. Si reemplazo el {@myId} con el valor que está en la variable, entonces encuentra el nodo correcto, pero hacerlo de esta manera no produce nada. Estoy seguro de que me estoy perdiendo algo, o tal vez hay una forma diferente de hacerlo.

El contexto es que hay datos relacionados bajo diferentes nodos de nivel superior que comparten el mismo valor de ID, así que necesito obtener los nodos relacionados en mi plantilla.


Parece que se ha confundido con el uso de una variable (que es solo $ variable) y Plantillas de valor de atributo, que le permiten poner cualquier expresión XPath en algunos atributos, por ejemplo

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

Obviamente, se pueden combinar, por lo que puede incluir una variable en una Plantilla de valor de atributo, como por ejemplo:

<newElement Id="{$myId}"/>