xsl-list
[Top] [All Lists]

RE: [xsl] changing value of xi:include's href variable during compilationg with XSLTPROC

2007-11-06 08:13:16
Hi dear Michael,

First of all, thank you for the suggestion. This
template did work with a little bit of modification:
<xsl:template match="xi:include">
  <xi:include>
    <xsl:copy-of select="@*"/>
    <xsl:attribute name="href">
      <xsl:copy-of select="@*"/>
      <xsl:value-of select="concat(@*, '.online')"/>
    </xsl:attribute>
  </xi:include>
</xsl:template>

So that during compilation a file name in xi:include
href construction gets the ".online" suffix. But here
is a problem:
In my source XML, there a couple of instance of the
following href formats:

<xi:include xmlns:xi="http://www.w3.org/2001/XInclude";
  href="voip_features_operation.xml#sect_tel_op_rad"/>

where #sect_tel_op_rad is a specific section withing
the voip_features_operation.xml. My question is how do
I further customize the above template in order to
change (during compilation)
href="voip_features_operation.xml#sect_tel_op_rad"/>
with
href="voip_features_operation.xml.online#sect_tel_op_rad"/>

Thank you very much in advance!!!
Nancy
--- Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:


And now the tricky part: the xi:include mechanism.
If I call 
an XML file within another file via xi:include,
the compiler 
does not turn the included file to
<filename>_online.xml.

Well from your description it looks like

<xsl:template match="xi:include">
  <xi:include>
    <xsl:copy-of select="@*"/>
    <xsl:attribute name="href">
      <xsl:value-of select="substring-before(.,
'.')"/>
      <xsl:text>_online.xml</xsl:text>
    </xsl:attribute>
  </xi:include>
</xsl:template>

But perhaps I've completely misunderstood the
requirement (or the nature of
your difficulty).

Michael Kay
http://www.saxonica.com/


This is a problem if the called file contains
macros, for 
example a macro for inserting graphics. The macro
is not 
processed, and it does  not turn to a mediaobject.

What I would like to have is a kind of a
template/mechanism 
which will automatically substitute all instances
of 
xi:include href="myfile.xml" with xi:include 
href="myfile_online.xml" during the first step of
compilation 
with XSLTPROC. 

Is it possible to create such?
 Please, advise...

Thank you very much in advance!!!!
My best wishes,
Nancy

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam
protection 
around http://mail.yahoo.com 



--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--