[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: How to modify img and href in an xhtml document

Subject: Re: How to modify img and href in an xhtml document
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Thu, 11 Sep 2003 06:44:45 +0200
xsl img
Use the identity transformation (your second solution) and override it with
the templates you have for specific elements -- e.g. img and a. This means
to place your specific templates after the identity template.


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL


"Terje Christensen" <terchris@xxxxxxxxxxx> wrote in message
news:Law10-F16gRLNTaFagA00010532@xxxxxxxxxxxxxx
I have a xml structure. Within that structure there is an html document
(/page/document/html/body)
I want to change the img and href tags inside  /page/document/html/body in
order to make the links work properly. I also need to remove a header and
footer from the html document.
The XML input file looks like this:
<body>
   <div class="theDocumentHeaderNavBars">
   . . . Some tables that must be deleted . . .
</div>
<div>
. . .  this is the html document . . .
</div>
<div class="theDocumentFooterNavBars">
   . . . Some tables that must be deleted . . .
</div>

I have written templates: for img and a tags. They are similar so I just put
the img template here:

<xsl:template match="img">
<xsl:copy>
  <xsl:copy-of select="@*"/>
  <xsl:attribute name="src">
    <xsl:choose>
       <xsl:when test="starts-with(@src,'./')"> <!-- if 'src' attribute has
relative value -->
         <xsl:value-of
select="concat(/page/@dataRelRoot,/page/currentItem/@itemFullPath,substring(
@src,2))"/>
      </xsl:when>
      <xsl:when test="starts-with(@src,'http://')"> <!-- if 'src' attribute
has absolute value -->
        <xsl:value-of select="@src"/>
     </xsl:when>
    <xsl:otherwise>
      <xsl:value-of
select="concat(/page/@dataRelRoot,/page/currentItem/@itemFullPath,'/',@src)"
/>
   </xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

The img template works, and replaces the src attribute.


I have written a template for the div tag. I'm just printing a text when top
and footer div tags are processed.

<xsl:template match="div">
<xsl:choose>
<xsl:when test="@class = 'theDocumentHeaderNavBars' or @class =
'theDocumentFooterNavBars' ">drop the Top or Bottom headers
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:copy-of select="."/>
<!--  <xsl:apply-templates select="node()|@*|processing-instruction()"/> -->
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>



But, how to start the transformation?

I have tried to start the transformation, but I do not get the result I
want.

<!-- this creates rubbish - just copies the text no tags for tables and so
on
<xsl:template match="/page/document/html/body">
   <xsl:copy>
      <xsl:copy-of select="@*"/>
         <xsl:apply-templates/>
   </xsl:copy>
</xsl:template>
-->



<!-- This works, but it process the whole xml input file. And is it fast
enough?
<xsl:template match="*">
<xsl:copy>
    <xsl:copy-of select="@*"/>
      <xsl:apply-templates/>
</xsl:copy>
</xsl:template>
-->

I hope that you can help me with a basic xslt question.
Thanks
Terje Chr.

_________________________________________________________________
Hotmail snakker ditt språk!
http://www.hotmail.msn.com/cgi-bin/sbox?rru=dasp/lang.asp - Få Hotmail på
norsk i dag


 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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.