Subject: RE: [xsl] Converting <xml> StyleSheet param contents into a node set? From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 17 Aug 2005 09:54:06 +0100 |
Firstly, the disable-output-escaping attribute isn't available on xsl:variable, so you ought to get a syntax error (though some processors are a bit lax, and just ignore attributes they don't recognize). Secondly, I don't know the precise specification of xalan:node-set(), but I would expect that in this case it will give you a document node containing a single text node whose value is the character string "<Node><Value>HI</Value></Node>" I wouldn't expect it to parse that string into XML for you. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Jacquo Johnson [mailto:genxgeek@xxxxxxxxx] > Sent: 17 August 2005 09:41 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Converting <xml> StyleSheet param contents > into a node set? > > Assuming that the xml is valid I guess my only question now is why #1 > works and #2 doesn't? > > #1 (untested)...works ...with <.> > <xsl:variable name="rtf"> > <Node><Value>HI</Value></Node> > </xsl:variable> > <xsl:copy-of select="xalan:nodeset($rtf)/child::*/Value" /> > > #2 (untested)...doesn't works...with < ...> > > <xsl:variable name="rtf"> > <Node><Value>HI</Value></Node> > </xsl:variable> > <xsl:variable name="rtf2" select="xalan:nodeset($rtf)" > disable-output-escaping="yes"/> > > <xsl:copy-of select="($rtf2)/child::*/Value"/> > > I sincerely appreciate the discussion and help with this, Michael. > > On 8/17/05, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > If the parameter arrives as unparsed XML, then at some > stage it's going to > > have to be parsed into a tree. You can do that in the > application before > > invoking the stylesheet, or you can do it by a call-out > from the stylesheet > > to some kind of extension (in Saxon you could use > saxon:parse()). I can't > > tell from your description which is likely to be more > convenient in your > > case. One approach would be to do it in a URIResolver > triggered by the > > document() function, but I don't know if that's appropriate > in Xalan-C. > > > > Michael Kay > > http://www.saxonica.com/ > > > > > -----Original Message----- > > > From: Jacquo Johnson [mailto:genxgeek@xxxxxxxxx] > > > Sent: 17 August 2005 08:06 > > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > Subject: Re: [xsl] Converting <xml> StyleSheet param contents > > > into a node set? > > > > > > Thanks for the reply, Michael! The XSLT version is 1.0 > and I'm using > > > Xalan v1.5 or v1.6 of the C/C++ for this specific application > > > solution. I'm testing the raw transform itself via > JEdit using the > > > lastest build of the XSLT plugin for Xalan Java (not sure > what version > > > that is). > > > > > > However, I would like to avoid any disk i/o or uri > specification for > > > this solution due to high message volume and fault > tolerance. Since I > > > recieve the xml filter specification within a Xerces Dom > Document as > > > passed from a server I would like to take the filter xml > contents and > > > pass it into an existing stylesheet as xml contents > > > <Filter>....</Filter> itself. This is all happening on the client > > > side in mememory and the only way that I can think of > adhering to this > > > requirement is parsing the filtered xml node xml contents into an > > > existing stylesheet as a parameter. > > > > > > Thoughts? > > > > > > On 8/17/05, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > > > The way you pass parameters to a stylesheet depends on the > > > API of the XSLT > > > > processor that you are using. Many will allow you to pass a > > > DOM Document > > > > node. > > > > > > > > If you're using Saxon from the command line, the parameter > > > > +Filter=filter.xml causes the file filter.xml to be > parsed, and the > > > > resulting document (root) node becomes the value of the > parameter. > > > > > > > > Another approach is to pass the URI as the stylesheet > > > parameter, and then > > > > call document() from within the stylesheet. > > > > > > > > Michael Kay > > > > http://www.saxonica.com/ > > > > > > > > > -----Original Message----- > > > > > From: Jacquo Johnson [mailto:genxgeek@xxxxxxxxx] > > > > > Sent: 17 August 2005 02:07 > > > > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > > > Subject: [xsl] Converting <xml> StyleSheet param contents > > > > > into a node set? > > > > > > > > > > HI all, can somebody tell me how I can pass <xml> > contents into a > > > > > stylesheet param and then convert that <xml> contents > > > into a nodeset? > > > > > > > > > > > > > > > Stylesheet: ( Filter=<Node><Whatever/></Node> ) > > > > > ... > > > > > <xsl:param name="Filter" select="string('NULL')" /> > > > > > > > > > > <xsl:copy-of select="$Filter"/> > > > > > ... > > > > > Output: > > > > > <Node><Whatever/></Node> > > > > > > > > > > However, I want to turn the xml contents above into a > > > node set that I > > > > > can later use in the transform. Is that possible (is > > > there something > > > > > other than using CDATA)? > > > > > > > > > > Any information would be greatly appreciated.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Converting <xml> StyleShe, Jacquo Johnson | Thread | [xsl] Transforming an XML document , Noam Raphael |
Re: [xsl] Converting <xml> StyleShe, Jacquo Johnson | Date | Re: [xsl] Transforming an XML docum, David Carlisle |
Month |