This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Convert String to (node-set)
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] Convert String to (node-set)
- From: "Michael Kay" <mhkay at iclway dot co dot uk>
- Date: Tue, 6 Feb 2001 10:53:58 -0000
- Reply-To: xsl-list at lists dot mulberrytech dot com
I think you want something like:
> <xsl:for-each select="$node/Node_path">
<xsl:variable name="xpath" select="."/>
<xsl:for-each select="$chandoc">
> <xsl:text>The Value retrieved from doc 2 is:
> </xsl:text><xsl:value-of
> select="saxon:evaluate($xpath)" />
</xsl:for-each>
> </xsl:for-each>
The inner for-each is just to change the context node to the $chandoc
document, so that the evaluate() applies the path expression to this
document.
Mike Kay
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of
> mxmodi@duke-energy.com
> Sent: 05 February 2001 20:21
> To: xsl-list@lists.mulberrytech.com
> Subject: RE: [xsl] Convert String to (node-set)
>
>
>
> Hi,
>
> All I am trying to do is parse a XML doc1, extract a
> particular node value
> from XML doc 1and then pass this string as an XPATH expression to be
> evaluatedin a separate XML doc 2. Any help is appreciated.
>
> My XML doc1 (called BER.xml in the stylesheet) is:
>
> <CHANNEL>
> <EVENT name="steve14nov">
> <NODE>
>
> <Node_path>//DATA/PARAMETERS/PARAMETER/TimeSheet/EmpUserID</Node_path>
> <Node_value>txtester</Node_value>
>
> <Node_path>//DATA/PARAMETERS/PARAMETER/TimeSheet/BeginWeek</Node_path>
> <Node_value>11/14/01</Node_value>
> <URL>http://sdangel04/tms?template=</URL>
> </NODE>
> <NODE>
>
> <Node_path>//DATA/PARAMETERS/PARAMETER/TimeSheet2/EmpUserID2</
> Node_path>
> <Node_value>txtester2</Node_value>
>
> <Node_path>//DATA/PARAMETERS/PARAMETER/TimeSheet/BeginWeek</Node_path>
> <Node_value>11/14/02</Node_value>
> <URL>http://sdangel04/tms?template=2</URL>
> </NODE>
> </EVENT>
> </CHANNEL>
>
> A snippet of my XSL used to parse this doc1 is:
>
>
> <xsl:stylesheet version="1.0" xmlns:xsl="
> http://www.w3.org/1999/XSL/Transform"
> xmlns:saxon="http://icl.com/saxon">
> <xsl:variable name="node"
> select="document('BER.xml')/CHANNEL/EVENT/NODE"
> />
> <xsl:variable name="chandoc" select="document('TSInsertBER.xml')" />
>
> <xsl:template match="/">
> <xsl:for-each select="$node//Node_path">
> <xsl:text>The Value retrieved from doc 2 is:
> </xsl:text><xsl:value-of
> select="saxon:evaluate($chandoc/.)" />
> </xsl:for-each>
> </xsl:template>
> <xsl:stylesheet>
>
> My XML doc 2 (TSInsertBER.xml in the stylesheet) is as follows:
> <MESSAGE>
> <DATA>
> <PARAMETERS>
> <PARAMETER>
> <TimeSheet>
> <EmpUserID>txtester2</EmpUserID>
> <BeginWeek>01/08/01</BeginWeek>
> <EndWeek>01/14/01</EndWeek>
> <Sun>1</Sun>
> <Mon>2</Mon>
> <Tue>3</Tue>
> <Wed>4</Wed>
> <Thu>5</Thu>
> <Fri>6</Fri>
> <Sat>7</Sat>
> <LastDate>01/01/01</LastDate>
> <UpdateUserId>admin</UpdateUserId>
> </TimeSheet>
> </PARAMETER>
> </PARAMETERS>
> </DATA>
> </MESSAGE>
>
>
>
>
>
>
> "Michael Kay"
>
> <mhkay@iclway.co.uk> To:
> <xsl-list@lists.mulberrytech.com>
> Sent by: cc:
>
> owner-xsl-list@lists.mulber
> Subject: RE: [xsl] Convert String to (node-set)
>
> rytech.com
>
>
>
>
>
> 02/05/2001 11:15 AM
>
> Please respond to xsl-list
>
>
>
>
>
>
>
>
> > I tried using the saxon"evaluate function. However, I got
> an error in
> > expression when I processed the XSL using Saxon 5.4. What am
> > I missing?
> >
> > Snippet of XSL code:
> >
> > <xsl:variable name="chandoc"
> select="document('TSInsertBER.xml')" />
> >
> > <xsl:template match="/">
> > <xsl:for-each select="$node//Node_path">
> > <xsl:text>The Value retrieved from doc 2 is:
> > </xsl:text><xsl:value-of
> > select="saxon:evaluate($chandoc/.)" />
> > </xsl:for-each>
> > </xsl:template>
>
> Several points:
> 1) $chandoc/. means exactly the same as $chandoc
> 2) The expression you are trying to evaluate is the text contents of
> document TSInsertBER.xml, which you haven't shown us
> 3) Whatever the result of the saxon:evaluate(), it will be
> exactly the same
> each time round the <xsl:for-each> loop, because there's
> nothing inside the
> loop that depends on the current node.
>
> Mike Kay
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list