2017-02-20 21 views
0

могли бы вы помочь мне получить последние два узла в XSLT .Здесь мой код http://xsltransform.net/bwdwsJ/1Как показать последние два узла в xslt?

expectoutput

<h1>Preview your result as PDF when doctype is set to XML and your document starts with 
     root element of XSL-FO. Apache FOP is used to generate the PDF 
    </h1> 
    <h1>Added some links to useful XSLT sites</h1> 

код XSLT

<xsl:template match="/"> 
     <hmtl> 
     <head> 
      <title>New Version!</title> 
     </head> 
     <xsl:for-each select="ul/li[last() &gt;2]"> 
      <h1><xsl:value-of select="."/></h1> 
     </xsl:for-each> 
     </hmtl> 
    </xsl:template> 

XML

<?xml version="1.0" encoding="UTF-8"?> 

    <ul> 
     <li>A new XSLT engine is added: Saxon 9.5 EE, with a license (thank you Michael Kay!)</li> 
     <li>XSLT 3.0 support when using the new Saxon 9.5 EE engine!</li> 
     <li>Preview your result as HTML when doctype is set to HTML (see this example)</li> 
     <li>Preview your result as PDF when doctype is set to XML and your document starts with root element of XSL-FO. Apache FOP is used to generate the PDF</li> 
     <li>Added some links to useful XSLT sites</li> 
    </ul> 

ответ

0

Короткий, но эффективен: ul/li[position() &gt;= last()-1]

Положение текущего обрабатываемого узла должно быть больше или равно, чем индекс последнего элемента минус 1.

Показанный на: http://xsltransform.net/bwdwsJ/2

0

Вы можете использовать ниже XPath выражение:

/ul/li[position()>count(/ul/li)-2] 
Смежные вопросы