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: mxmodi at duke-energy dot com
- Date: Mon, 5 Feb 2001 14:20:41 -0600
- Reply-To: xsl-list at lists dot mulberrytech dot com
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