Ответ на расширенный вопрос.Вы можете использовать позиционное значение, если вы выбираете набор узлов из требуемых элементов:
<xsl:value-of select="(items//title)[2]"/>
или:
<xsl:value-of select="(items/*/title)[2]"/>
Обратите внимание на использование скобок, необходимых для возврата требуемого узла-установить перед выбором по позиции.
Вы можете использовать то, что вы назвали «в смысле программирования».Однако вам нужно *
из-за неизвестного имени дочерних элементов:
<xsl:value-of select="items/*[2]"/>
Обратите внимание, что наборы узлов в XSLT не начинаются с нуля.Таким образом, вы выбираете второй элемент , а не третий .
. Вам действительно нужно position()
, если вы хотите сравнить текущую позицию с числомкак в:
<xsl:value-of select="items/*[position()>2]"/>
, чтобы выбрать все элемент с позицией, превышающей 2. Другой случай, когда position()
является обязательным, - это когда значение позиции является переменной типа string :
<xsl:variable name="pos" select="'2'"/>
<xsl:value-of select="items/*[position()=$pos]"/>