[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] no way to avoid errors if getting both strings and elements?
i'm often frustrated by the lack in xslt of a node-type function that would just tell me 'text' or 'element' or whatever (like the ref() function in perl). if i'm in a template and handed something that could be either, i'm screwed. if it is text, then i get xt's dreaded "cannot convert to node-set" error when i do things like name($thing) or even $thing/*. if is an element, and i simply do something like <xsl:value-of select="$thing"> or string($thing), then i run together its multiple text children, which i don't want to do. here is a stylesheet that shows the problem. i'd love to see a version of the "analyze_node" function that will classify anything handed to it.... thanks. -mda <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:variable name="str" select="'a string'"/> <xsl:variable name="el"> <root>a text child</root> </xsl:variable> <xsl:template match="/"> <xsl:call-template name="analyze_node"><xsl:with-param name="thing" select="$str"/></xsl:call-template> <xsl:call-template name="analyze_node"><xsl:with-param name="thing" select="$el"/></xsl:call-template> </xsl:template> <xsl:template name="analyze_node"> <xsl:param name="thing"/> <xsl:message>analyzing node...</xsl:message> <xsl:choose> <xsl:when test="$thing/self::text()"> <xsl:message>this is a string: <xsl:value-of select="$thing"/></xsl:message> </xsl:when> <xsl:when test="$thing/child::text()"> <xsl:message>this is a node with a text child: <xsl:value-of select="$thing/text()"/></xsl:message> </xsl:when> <xsl:otherwise>i dunno</xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> ----sample output---- e:/xt-19991105/xt test4.xsl test4.xsl test4.html file:/d:/mda/projects/xmlhacks/xmlidl/test4.xsl:1: analyzing node... cannot convert to node-set XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|