This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: conditional inlcudes -is it possible?
- From: "Robert Koberg" <rob at koberg dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 30 Sep 2002 15:28:41 -0700
- Subject: RE: [xsl] conditional inlcudes -is it possible?
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
You can't do it in XSL. But you can do it with a URIResolver in something like
java. You can pass the arguments you need to the object and determine which file
to include. For examplpe:
TransformerFactory factory = TransformerFactory.newInstance();
factory.setURIResolver(new MyResolver(some_argument));
...
class MyResolver implements URIResolver {
String arg;
public MyResolver(String _arg) {
this.arg = _arg;
}
public Source resolve(String href,String base) {
String file_str = "some starting path";
if (href.equals("boo")
file_str = file_str;
} else if (href.equals("foo")) {
file_str = file_str + this.arg;
}
File file = new File(file_str,href);
if(file.exists()) return new StreamSource(file);
return null;
}
}
You set the resolver on the factory and then things like xsl:include/import and
document() are handled by 'MyResolver'
best,
-Rob
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of Vedu Hariths
> Sent: Monday, September 30, 2002 1:21 PM
> To: XSL-List@lists.mulberrytech.com
> Subject: [xsl] conditional inlcudes -is it possible?
>
>
> Hello,
> This is our situation. We have a global xsl that
> ensures that all our webpages have a certain content.
> We are trying to make the inclusion of local xsl
> stylesheets conditional based on where the request is
> coming from so this brings out two questions:
> a) is there a function like say HTTP_REFERER (in php)
> that tells you the page/uri that requested the page
> and,
> b) is there a way to include different XSL stylesheets
> into one XSL stylesheet based on the information from
> 'a'.
>
> I do know that multiple includes are possible, but
> when I tried this, as a first step, this also did not
> work:
>
> <xsl:variable
> name="location">http://theurl</xsl:variable>
> </xsl:include href="$location" />
>
> This came out with the error that no stylesheet has
> been speficied. This part would be necessary if 'a'
> and 'b' could be done.
>
> Thanks for your help in advance,
> Vedu
>
>
> __________________________________________________
> Do you Yahoo!?
> New DSL Internet Access from SBC & Yahoo!
> http://sbc.yahoo.com
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list