Here's a slightly more pushed approach that accomplishes what you want.
When is this XSLT:
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output omit-xml-declaration="no" indent="yes" doctype-public="-//WAPFORUM//DTD XHTML Mobile 1.0//EN" doctype-system="http://www.wapforum.org/DTD/xhtml-mobile10.dtd" /> <xsl:strip-space elements="*" /> <xsl:template match="/*"> <html> <head> <title>Fruits</title> </head> <body> <xsl:apply-templates select="fruits/fruit[contains(title, 'pineapple')]" /> </body> </html> </xsl:template> <xsl:template match="fruit"> <xsl:apply-templates select="description" /> </xsl:template> </xsl:stylesheet>
... applies to the provided XML:
<?xml version="1.0" encoding="utf-8"?> <document> <fruits> <fruit id="1"> <title>I like pineapples</title> <description>a tropical plant with edible multiple fruit consisting of coalesced berries</description> </fruit> <fruit id="2"> <title>I like watermelons</title> <description>has a smooth exterior rind (green, yellow and sometimes white) and a juicy, sweet interior flesh</description> </fruit> </fruits> </document>
... the desired result is created:
<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Fruits</title> </head> <body>a tropical plant with edible multiple fruit consisting of coalesced berries</body> </html>
source share