xsl-list
[Top] [All Lists]

Re: xsl/xml question

2003-03-03 03:27:30
From: "Wendy Ang" <wendy(_at_)e-ws(_dot_)com>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: <XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com>
Subject: [xsl] xsl/xml question
Date: Mon, 3 Mar 2003 18:17:20 -0800

Dear List,

I have the following XML Data format:

<ProductList>
        <Product>
                <ProductID>111</ProductID>
                <ProductName>abc</ProductName>
                ...
        </Product>
</ProductList>

and I need to transform it with the corresponding XSL template using the
transformNode of MicrosoftXMLDOM

the XSL Template goes:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl";>

<xsl:template match="/">
    <table border="2">
      <xsl:for-each select="/ProductList/Product">
              <tr>
                <td>
                    Product ID: <xsl:value-of select="ProductID"/><br/>
                    Product Name: <a href="$ProductID"><xsl:value-of
select="ProductName"/></a><br/>
                    Product Code: <xsl:value-of
select="ProductCode"/><br/>
                    Description: <xsl:value-of
select="Description"/><br/>
                    Picture: <xsl:value-of select="Picture"/><br/>
                    <xsl:value-of select="Active"/><br/>
                    <xsl:value-of select="bNew"/><br/>
                    <xsl:value-of select="Special"/><br/>
                    <xsl:value-of select="AllowWriteIn"/><br/>
                    <xsl:value-of select="WriteInText"/><br/>
                    <xsl:value-of select="ListPrice"/><br/>
                    <xsl:value-of select="SellingPrice"/><br/>
                    <xsl:value-of select="PricePerUnit"/><br/>
                    <xsl:value-of select="MemberPrice"/><br/>
                    <xsl:value-of select="ActualCost"/><br/>
                    <xsl:value-of select="VolumePricing"/><br/>
                    <xsl:value-of select="VolumeQuantity"/><br/>
                    <xsl:value-of select="VolumePrice"/><br/>
                    <xsl:value-of select="VolumeEvenQuantity"/><br/>
                    <xsl:value-of
select="ApplyQuantitiesOverVolume"/><br/>
                    <xsl:value-of select="SupplierID"/><br/>
                    <xsl:value-of select="ExternalURL"/><br/>
                    <xsl:value-of select="ExtraInfoOffer"/><br/>
                    <xsl:value-of select="ExtraInfoLocation"/><br/>
                    <xsl:value-of select="Status"/><br/></td>
              </tr>
      </xsl:for-each>
    </table>
</xsl:template>
</xsl:stylesheet>



now, if you can see this part:

    Product Name: <a href="$ProductID"><xsl:value-of
select="ProductName"/></a><br/>
                    Product Code: <xsl:value-of
select="ProductCode"/><br/>

I'm trying to get the value of ProductID and assign it to the "href"
attribute of the element <a>... anyone knows how to solve this problem?
Thanks in advance :)

Firstly aviod using the antiquated working draft transformation language indicated by:
xmlns:xsl="http://www.w3.org/TR/WD-xsl";
change this to:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
if you are using version 3 parser or better and set the selectionLanguage to "XPath". See help docs for examples.
Secondly what you need is called an Attribute Value Template. Change:
<a href="$ProductID">
to
<a href="{$ProductID}">
anything in {} will be evaluated as an XPath expression.

Joe

_________________________________________________________________
Stay in touch with MSN Messenger http://messenger.msn.co.uk


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>