RE: [xsl] How does one go about extracting HTML anchors from an XML file?

Subject: RE: [xsl] How does one go about extracting HTML anchors from an XML file?
From: "Michael Kay" <mhkay@xxxxxxxxxxxx>
Date: Mon, 17 Sep 2001 22:11:29 +0100
You are making life quite unnecessarily difficult for yourself. Your
<xsl:choose>, <xsl:when>, <xsl:for-each>, and <xsl:call-template> calls are
trying to do manually what <xsl:apply-templates> does for you automatically.

Just write:

<xsl:template match="href">
<a href="@link"><xsl:apply-templates/></a>
</xsl:template>

<xsl:template match="a[@mailto]">
<a href="mailto:{@mailto}";><xsl:apply-templates/></a>
</xsl:template>

<xsl:template match="p">
<p><xsl:apply-templates/></p>
</xsl:template>

Mike Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Liat Jacob
> Sent: 17 September 2001 20:15
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] How does one go about extracting HTML anchors
> from an XML
> file?
>
>
> Hello all,
>
> I'm trying to retrieve links and mailto anchors from an XML
> file and display
> them in an HTML page ('a href' and 'a mailto' respectively).
> The problem I'm
> running into is that I don't know how to extract these
> anchors properly
> while preserving the overall hierarchy of the nodes.
>
> Here's what my XML file looks like:
>
> <article>
>    <summary>
>       <p>blah blah blah blah blah blah
>          blah <href link='www.yahoo.com'> some link text here</href>
> 	 blah blah <a mailto="jacob_liat@xxxxxxxxxxx>some text here</a>
> 	 blah blah.</p>
>       <p>second paragraph with additional anchors embedded throughout
>          the paragraph text.</p>
>    </summary>
> </article>
>
>
>
> The corresponding XSL file is:
>
> <xsl:template match="p">
>    <P>
>       <xsl:choose>
>          <xsl:when test="href">
>             <xsl:for-each select="href">
> 	       <xsl:call-template name="href">
> 	          <xsl:with-param name="word">
>                      <xsl:value-of select="."/></xsl:with-param>
> 	       </xsl:call-template>
> 	    </xsl:for-each>
> 	 </xsl:when>
> 	 <xsl:when test="a">
> 	    <xsl:for-each select="a">
> 	       <xsl:call-template name="a">
> 	          <xsl:with-param name="addr">
>                      <xsl:value-of select="."/></xsl:with-param>
> 	       </xsl:call-template>
> 	    </xsl:for-each>
> 	 </xsl:when>
>       </xsl:choose>
>    </P>
>    <xsl:value-of select="."/>
> </xsl:template>
>
>
> <xsl:template name="href">
>    <xsl:param name="word"/>
>       <A HREF="http://{@link}";><xsl:value-of select="$word"/></A>
> </xsl:template>
>
>
> <xsl:template name="a">
>    <xsl:param name="addr"/>
>       <A HREF="mailto:{@mailto}";><xsl:value-of select="$addr"/></A>
> </xsl:template>
>
>
> I'd greatly appreciate if anyone has any ideas and would
> kindly point me in
> the right direction.
>
> Thanks in advance for any help,
> Liat
>
> _________________________________________________________________
> Get your FREE download of MSN Explorer at
> http://explorer.msn.com/intl.asp
>
>
>  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