Using the XSLT function document()
Using the file lunch.xml with drink.xml I can show what is available for today's lunch menu.
file: lunch.xml
<food> <item name="banana"/> <item name="apple"/> <item name="custard"/> <item name="crisps"/> </food>
file: drink.xml
<drinks> <drink name="water"/> <drink name="orange"/> <drink name="lemonade"/> <drink name="cream soda"/> <drink name="tea"/> <drink name="coffee"/> <drink name="blackcurrant juice"/> <drink name="ginger ale with lime"/> </drinks>
file: lunch.xsl
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="food"> <html> <head><title>Food menu</title></head> <body> <h1>To eat</h1> <ul> <xsl:apply-templates select="item" /> </ul> <h1>To drink</h1> <xsl:value-of select="document('drink.xml')/drinks/drink[2]/@name"/> </body> </html> </xsl:template> <xsl:template match="item"> <li><xsl:value-of select="@name"/></li> </xsl:template> </xsl:stylesheet>
output:
<html><body> <h1>To eat</h1> <ul> <li>banana</li> <li>apple</li> <li>custard</li> <li>crisps</li> </ul> <h1>To drink</h1>orange</body></html>