xsl-list
[Top] [All Lists]

RE: conditional inlcudes -is it possible?

2002-10-01 09:38:32
Thanks, that helps.
Vedu
--- Robert Koberg <rob(_at_)koberg(_dot_)com> wrote:
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(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On
Behalf Of Vedu Hariths
Sent: Monday, September 30, 2002 1:21 PM
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)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



__________________________________________________
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