home *** CD-ROM | disk | FTP | other *** search
- package com.kav.xsl;
-
- import java.util.Hashtable;
- import java.util.StringTokenizer;
- import org.w3c.dom.ProcessingInstruction;
-
- public class XSLPIHandler {
- public static String STYLESHEET_PI_OLD = "xml:stylesheet";
- public static String STYLESHEET_PI = "xml-stylesheet";
- public static String HREF_ATTR = "href";
- private static String EQUALS = "=";
- private static String QUOTE = "\"";
- private static String SPACE = " ";
- private String href;
-
- public void handlePI(ProcessingInstruction var1) {
- String var2 = var1.getTarget();
- String var3 = var1.getData();
- if (var2.equals(STYLESHEET_PI) || var2.equals(STYLESHEET_PI_OLD)) {
- Hashtable var4 = this.parseAttributes(var3);
- this.href = (String)var4.get(HREF_ATTR);
- }
-
- }
-
- private Hashtable parseAttributes(String var1) {
- Hashtable var2 = new Hashtable();
- StringTokenizer var3 = new StringTokenizer(var1, SPACE + EQUALS, true);
- String var5 = null;
- Object var6 = null;
- boolean var7 = false;
-
- while(var3.hasMoreTokens()) {
- String var4 = var3.nextToken();
- if (!var4.equals(SPACE)) {
- if (var4.equals(EQUALS)) {
- var7 = true;
- } else if (var5 == null) {
- var5 = var4;
- } else if (var7) {
- String var8 = var4;
- if (var4.startsWith(QUOTE) && var4.endsWith(QUOTE)) {
- var8 = var4.substring(1, var4.length() - 1);
- }
-
- var7 = false;
- var2.put(var5, var8);
- var5 = null;
- } else {
- String var9 = "";
- var2.put(var5, var9);
- var5 = var4;
- }
- }
- }
-
- return var2;
- }
-
- public String getStylesheetHref() {
- return this.href;
- }
- }
-