Subject: Re: [xsl] XTTE0510 ISSUE. From: chun ji <cji_work@xxxxxxxxx> Date: Mon, 18 Aug 2008 14:59:40 -0700 (PDT) |
Hi Ken, thank you for the tips and that does solve my problem. For those interested, here is my updated xsl file: " <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" indent="yes"/> <xsl:variable name="doc2" select="document('testcases.xml')"/> <xsl:template match="/"> <TestCases> <xsl:apply-templates /> </TestCases> </xsl:template> <xsl:template match="Obj"> <xsl:variable name="objName" select="@name"/> <xsl:variable name="caseString" select = "$doc2//obj[@name = $objName]/@cases"/> <xsl:variable name="caseArray" select="tokenize($caseString, ',')"/> <xsl:variable name="Obj" select="."/> <xsl:for-each select="$caseArray"> <obj> <xsl:variable name="a" select="position()"/> <xsl:attribute name="name"> <xsl:value-of select="$objName"/> </xsl:attribute> <xsl:attribute name="case"> <xsl:value-of select="$caseArray[$a]"/> </xsl:attribute> <xsl:apply-templates select="$Obj/node()"/> </obj> </xsl:for-each> </xsl:template> </xsl:stylesheet> " -c --- "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> wrote: > At 2008-08-18 13:43 -0700, chun ji wrote: > >Here is my XSL file that does not work, > > <xsl:template match="Obj"> > > <xsl:variable name="objName" > select="@name"/> > > <xsl:variable name="caseString" select = > >"$doc2//obj[@name = $objName]/@cases"/> > > <xsl:variable name="caseArray" > >select="tokenize($caseString, ',')"/> > > > > <xsl:for-each select="$caseArray"> > > Here you are iterating over a set of strings > returned from tokenize(). > > > <xsl:apply-templates /> > > And you are not in any node tree, so there is no > way to push any nodes at your stylesheet. Your > current context item is a string value. > > >!0XTTE0510: Cannot apply-templates to child nodes > when > >the context item is an atomic value!1. > > Which is why you get the error. > > If you wanted to push the node children of Obj > then put Obj into a variable and use: > > <xsl:apply-templates select="$Obj/node()"/> > > I hope this helps. > > . . . . . . . . . . . . . Ken > > -- > Upcoming XSLT/XSL-FO hands-on courses: > Wellington, NZ 2009-01 > Training tools: Comprehensive interactive XSLT/XPath > 1.0/2.0 video > G. Ken Holman > mailto:gkholman@xxxxxxxxxxxxxxxxxxxx > Crane Softwrights Ltd. > http://www.CraneSoftwrights.com/s/ > Male Cancer Awareness Nov'07 > http://www.CraneSoftwrights.com/s/bc > Legal business disclaimers: > http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XTTE0510 ISSUE., G. Ken Holman | Thread | [xsl] image from a jar file, Rolf Schumacher |
Re: [xsl] flattening and re-orderin, Walter Lee Davis | Date | [xsl] XPath (regex?) question about, Mark Wilson |
Month |