RE: [xsl] Convert String to (node-set)

Subject: RE: [xsl] Convert String to (node-set)
From: mxmodi@xxxxxxxxxxxxxxx
Date: Mon, 5 Feb 2001 14:20:41 -0600
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@xxxxxxxxxxxx>               To:     <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>                                 
                    Sent by:                           cc:                                                                       
                    owner-xsl-list@xxxxxxxxxxxx        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


Current Thread