home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / jserv / com / kav / xsl / XSLPIHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-05-16  |  1.8 KB  |  64 lines

  1. package com.kav.xsl;
  2.  
  3. import java.util.Hashtable;
  4. import java.util.StringTokenizer;
  5. import org.w3c.dom.ProcessingInstruction;
  6.  
  7. public class XSLPIHandler {
  8.    public static String STYLESHEET_PI_OLD = "xml:stylesheet";
  9.    public static String STYLESHEET_PI = "xml-stylesheet";
  10.    public static String HREF_ATTR = "href";
  11.    private static String EQUALS = "=";
  12.    private static String QUOTE = "\"";
  13.    private static String SPACE = " ";
  14.    private String href;
  15.  
  16.    public void handlePI(ProcessingInstruction var1) {
  17.       String var2 = var1.getTarget();
  18.       String var3 = var1.getData();
  19.       if (var2.equals(STYLESHEET_PI) || var2.equals(STYLESHEET_PI_OLD)) {
  20.          Hashtable var4 = this.parseAttributes(var3);
  21.          this.href = (String)var4.get(HREF_ATTR);
  22.       }
  23.  
  24.    }
  25.  
  26.    private Hashtable parseAttributes(String var1) {
  27.       Hashtable var2 = new Hashtable();
  28.       StringTokenizer var3 = new StringTokenizer(var1, SPACE + EQUALS, true);
  29.       String var5 = null;
  30.       Object var6 = null;
  31.       boolean var7 = false;
  32.  
  33.       while(var3.hasMoreTokens()) {
  34.          String var4 = var3.nextToken();
  35.          if (!var4.equals(SPACE)) {
  36.             if (var4.equals(EQUALS)) {
  37.                var7 = true;
  38.             } else if (var5 == null) {
  39.                var5 = var4;
  40.             } else if (var7) {
  41.                String var8 = var4;
  42.                if (var4.startsWith(QUOTE) && var4.endsWith(QUOTE)) {
  43.                   var8 = var4.substring(1, var4.length() - 1);
  44.                }
  45.  
  46.                var7 = false;
  47.                var2.put(var5, var8);
  48.                var5 = null;
  49.             } else {
  50.                String var9 = "";
  51.                var2.put(var5, var9);
  52.                var5 = var4;
  53.             }
  54.          }
  55.       }
  56.  
  57.       return var2;
  58.    }
  59.  
  60.    public String getStylesheetHref() {
  61.       return this.href;
  62.    }
  63. }
  64.