This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Newbie - Trying to read in a value with XSL ...
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] Newbie - Trying to read in a value with XSL ...
- From: "Weakliem, Gordon" <Gordon dot Weakliem at Den dot Galileo dot com>
- Date: Wed, 3 Jan 2001 13:30:55 -0700
- Reply-To: xsl-list at lists dot mulberrytech dot com
Two problems:
1) select="/" won't select comment nodes. Try <xsl:for-each
select="comment()" >.
2) Your code:
Set root = source.documentElement
Set newNode = source.createNode (8, "PAGE_FROM", "")
newNode.nodevalue = "YES"
root.appendChild(newNode)
Appends the new node below root, i.e.
<root><child/></root>
becomes
<root><child/><!--YES--></root>
> When I try the node type of text, I get a concatenated list
> of all values
> (too many), with element I get nothing and with comment I get nothing.
What's your context at the point you're doing the select? If your comment
is a child of the current node, comment() will find it. In other words,
given the simple document above, either of the following will work:
<!-- example 1 -->
<xsl:template match="root">
<tr>
<xsl:for-each select="comment()" >
<td>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:template>
<!-- Example 2, I like this one better -->
<xsl:template match="root">
<tr>
<xsl:apply-templates select="comment()" />
</tr>
</xsl:template>
<xsl:template match="comment()">
<td>
<xsl:value-of select="."/>
</td>
</xsl:template>
OK, I've just spent way too much time on an MSXML 2.5 problem. The best
solution is to tell your vendor to upgrade their product.
> -----Original Message-----
> From: Melissa Mussitsch [mailto:melissa.mussitsch@ansys.com]
> Sent: Wednesday, January 03, 2001 10:03 AM
> To: 'XSL-List@lists.mulberrytech.com'
> Subject: [xsl] Newbie - Trying to read in a value with XSL ...
>
>
> Hi,
> I know very little about XSL and even XML for that matter. My company
> purchased a product which uses the XSL functionality from the version
> http://www.w3.org/TR/WD-xsl.
> I need to make a modification and am having trouble.
> Basically I'm trying
> to pass a variable from my asp page to the XSL page, but
> since I'm using
> this older version, I can't utilize the xsl:param object (to
> my knowledge).
> I decided that I would create a new node on the asp side and
> refer to that
> node on the xsl side.
> My code on the asp side is as follows:
>
> dim styleFile
> styleFile = Server.MapPath("web_leads_survey.xsl")
>
> ' Load the XML
> dim source
> set source = Server.CreateObject("Microsoft.XMLDOM")
> source.async = false
> source.loadxml( sXML )
>
> Set root = source.documentElement
> 'I keep playing with different node types here trying to get
> them to work
> ... tried element, text, comment
> Set newNode = source.createNode (8, "PAGE_FROM", "")
> newNode.nodevalue = "YES"
> root.appendChild(newNode)
>
> ' Load the XSL
> dim style
> set style = Server.CreateObject("Microsoft.XMLDOM")
> style.async = false
> style.load(styleFile)
>
> Response.Write(source.transformNode(style))
>
> This is working properly - I get a node of name #comment with
> value "YES".
> My problem is referring to that node and value from XSL. The
> code I tried
> is below:
>
> <tr>
> <xsl:for-each select="/" >
> <td>
> <xsl:value-of select="."/>
> </td>
> </xsl:for-each>
> </tr>
>
> As you can see it's not much - but the pattern matching is
> not working.
> When I try the node type of text, I get a concatenated list
> of all values
> (too many), with element I get nothing and with comment I get nothing.
> I tried using the <xsl:template match ...> which I've seen in
> many examples
> but this generates an error message, perhaps because of my version.
>
> Can anyone help - I've been working on this for a day and a
> half and really
> only have examples in internet doc searches to go on?
>
> Thanks
> Melissa
> melissa.mussitsch@ansys.com
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list