Как использовать переменную в XSL при попытке выбрать узел?

голоса
13

Я бы подумал, что это будет легко один в Google, но я был безуспешным.

Я хочу, чтобы присвоить переменной значение из атрибута (легко до сих пор), а затем использовать эту переменную, чтобы выбрать другой узел, основываясь на значении этого атрибута.

Пример:

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

Это не работает. Если я заменю {@myId} со значением, которое находится в переменной, то это найти правильный узел, но doign это таким образом, ничего не производит. Я уверен, что я что-то не хватает, или, возможно, есть другой способ сделать это.

Контекст, что связан данные при различных узлах верхнего уровня, которые разделяют то же значение ID, поэтому мне нужно, чтобы получить соответствующие узлы в моем шаблоне.

Задан 07/08/2008 в 22:53
источник пользователем
На других языках...                            


2 ответов

голоса
16

Хорошо, я , наконец , понял это. Глупая проблема действительно, я просто нужно выйти из кавычки и фигурные скобки. Один из тех времен , когда я думал , что я уже пробовал. : D О, и я неправильно набранный @myId в первом примере, код был на самом деле $ MyId.

<xsl:variable name="myId" select="@id" />
<xsl value-of select="//Root/Some/Other/Path/Where[@id=$myId]/@Name" />
Ответил 08/08/2008 в 00:16
источник пользователем

голоса
4

Вы, кажется, запутались с использованием переменного (которая просто переменный $) и значение атрибута шаблонов, которые позволяют поместить любое выражение XPath в некоторых атрибутах, например,

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

Они, очевидно, могут быть объединены, так что вы можете включить переменную в качестве значения атрибута шаблона, таких как:

<newElement Id="{$myId}"/>
Ответил 19/08/2008 в 16:19
источник пользователем

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