This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: conditional inlcudes -is it possible?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]