By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,953 Members | 1,109 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,953 IT Pros & Developers. It's quick & easy.

How to include different XSLT files on the fly based on some criteria?

P: n/a
Hi Friends

I have to call 1 of the 2 child XSLT files from the Main XSLT file
based on some criteria. I want one child XSLT file will be executed by
version 1 of XSLT processor and the other by version 2 of XSLT
processor based on some condition.

Q) How and where shall I write logic or import desirable XSLT on the
Fly ?
Q) When we call AAA.XSLT then it will be processed by XSLT Processor 1
and when we call BBB.XSLT,it will be called by XSLT processor 2. (This
is what I want to happen). Is this statement correct? Is it possible?

---Main.XSLT-----
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- This functionality is not supported. -->
<xsl:choose>
<xsl:when test = "X = AAA">
<xsl:include href=".\AAA.xslt"/>
</xsl:when>
<xsl:when test = "X = BBB">
<xsl:include href=".\BBB.xslt"/>
</xsl:when>
</xsl:choose>
</xsl:stylesheet>

---AAA.XSLT----------
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!----some code here for version 1 of xslt---->
</xsl:template>
</xsl:stylesheet>
---BBB.XSLT-----------
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!------some code here for version 2 of xslt---->
</xsl:template>
</xsl:stylesheet>
Thanks
Mohit
mo*****@hotmail.com
Jul 20 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a


Mohit wrote:
I have to call 1 of the 2 child XSLT files from the Main XSLT file
based on some criteria. I want one child XSLT file will be executed by
version 1 of XSLT processor and the other by version 2 of XSLT
processor based on some condition.

Q) How and where shall I write logic or import desirable XSLT on the
Fly ?
Q) When we call AAA.XSLT then it will be processed by XSLT Processor 1
and when we call BBB.XSLT,it will be called by XSLT processor 2. (This
is what I want to happen). Is this statement correct? Is it possible?

---Main.XSLT-----
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- This functionality is not supported. -->
<xsl:choose>
<xsl:when test = "X = AAA">
<xsl:include href=".\AAA.xslt"/>
</xsl:when>
<xsl:when test = "X = BBB">
<xsl:include href=".\BBB.xslt"/>
</xsl:when>
</xsl:choose>
</xsl:stylesheet>

---AAA.XSLT----------
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!----some code here for version 1 of xslt---->
</xsl:template>
</xsl:stylesheet>
---BBB.XSLT-----------
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!------some code here for version 2 of xslt---->
</xsl:template>
</xsl:stylesheet>


As for testing features before you use them you could use the XSLT
functions element-availabe and function-available and xsl:fallback.
However I don't see a way to conditionally include a stylesheet.
--

Martin Honnen
http://JavaScript.FAQTs.com/

Jul 20 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.