Учитывая следующую структуру, как скопировать первый и второй узлы со всеми их элементами из документа на основе предиката в XSLT:
<list>
<slot>xx</slot>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
</list>
<list>
<slot>xx</slot>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
<data>
<name>xxx</name>
<age>xxx</age>
</data>
</list>
Как выбрать первое и второе вхождение данных (без самого элемента данных, только имя, возраст) из списка, где интервал равен другой переменной, т.е. первый список имеет slot=02
, но мне нужны данные из второго списка, где slot=01
. Но на самом деле не имеет значения порядок списка по слоту, пока slot=$slotvariable
.
Я попробовал следующее утверждение, но оно не дало никаких результатов:
<xsl:element name="{'Lastdata'}">
<xsl:copy-of select="list/data[position()=1 and slot = $slotvariable]" />
</xsl:element>
<xsl:element name="{'prevdata'}">
<xsl:copy-of select="list/data[position()=2 and slot = $slotvariable]" />
</xsl:element>
Будем благодарны за любые рабочие предложения