File: Data.xml
<wine grape="Chardonnay">
<winery>shop 1</winery>
<product>product 1</product>
<year>1998</year>
<desc>description</desc>
<prices>
<list>6.99</list>
<discounted>5.99</discounted>
<case>71.50</case>
</prices>
</wine>
File: Transform.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes" indent="no" />
<xsl:template match="item[3]">
~~~~ Start of item element's template ~~~~ 1. This node: {
<xsl:apply-templates />
} 2. First node: {
<xsl:value-of select="../item[1]" />
} 3. Last node: {
<xsl:value-of select="../item[last()]" />
} 4. Preceding node: {
<xsl:value-of select="preceding-sibling::item[1]" />
} 5. Next node: {
<xsl:value-of select="following-sibling::item[1]" />
} 6. flavor attribute value of first node: {
<xsl:value-of select="../item[1]/@flavor" />
} ~~~~ End of item element's template ~~~~
</xsl:template>
<xsl:template match="item" />
</xsl:stylesheet>
Output:
shop 1
product 1
1998
description
6.99
5.99
71.50
|