Klein0r
Erfahrenes Mitglied
So irgendwie bekomme ich keinen SAC-Parser hin.
Wenn ich das habe dann gehts glaube ich gut vorran.
Ich habe mal den Sourcecode zur vorher genannten Exception gesucht:
Nur was bitte macht System.getProperty("org.w3c.css.sac.parser"); ?
Was wird da geladen und wie kann ich so an ein Ergebnis kommen?
Ich raffs nich
danke
EDIT:
So ich habe es endlich hinbekommen - war eigentlich sehr einfach. Allerdings ohne diese jxcss-Geschichte:
Nun funktioniert das ganze folgendermaßen:
Die Klasse MyCssDocumentHandler habe ich natürlich selbst geschrieben.
Sie implementiert das Interface: import org.w3c.css.sac.DocumentHandler
Nun knallt man alle Methoden rein und schon kanns losgehen
Eigentlich einfacher als man denkt. Aber ich habe einfach den ganzen Krams
total verrafft. Naja nun läufts. Mein Problem war das ich das abhängige lib
batik-util.jar nicht mit eingebunden haben - so gabs etliche exceptions mit
denen ich nix anfangen konnte.
Danke für die Hilfe!
lg
Wenn ich das habe dann gehts glaube ich gut vorran.
Ich habe mal den Sourcecode zur vorher genannten Exception gesucht:
Java:
/*
* Copyright (c) 1999 World Wide Web Consortium,
* (Massachusetts Institute of Technology, Institut National de
* Recherche en Informatique et en Automatique, Keio University). All
* Rights Reserved. This program is distributed under the W3C's Software
* Intellectual Property License. This program is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE.
* See W3C License http://www.w3.org/Consortium/Legal/ for more details.
*
* $Id: ParserFactory.java,v 1.1 2000/02/14 15:54:49 plehegar Exp $
*/
package org.w3c.css.sac.helpers;
import org.w3c.css.sac.Parser;
/**
* @version $Revision: 1.1 $
* @author Philippe Le Hegaret
*/
public class ParserFactory {
/**
* Create a parser with given selectors factory and conditions factory.
*/
public Parser makeParser()
throws ClassNotFoundException,
IllegalAccessException,
InstantiationException,
NullPointerException,
ClassCastException {
String className = System.getProperty("org.w3c.css.sac.parser");
if (className == null) {
throw new NullPointerException("No value for sac.parser property");
} else {
return (Parser)(Class.forName(className).newInstance());
}
}
}
Nur was bitte macht System.getProperty("org.w3c.css.sac.parser"); ?
Was wird da geladen und wie kann ich so an ein Ergebnis kommen?
Ich raffs nich
danke
EDIT:
So ich habe es endlich hinbekommen - war eigentlich sehr einfach. Allerdings ohne diese jxcss-Geschichte:
- Batik laden: http://xmlgraphics.apache.org/batik/
- SAC laden: http://www.w3.org/Style/CSS/SAC/
- folgende Libs einbinden:
- sac.jar
- batik-css.jar
- batik-util.jar
Nun funktioniert das ganze folgendermaßen:
Java:
import java.io.FileReader;
import java.io.IOException;
import org.apache.batik.css.parser.Parser;
import org.w3c.css.sac.CSSException;
import org.w3c.css.sac.InputSource;
public class ParserMain {
public static void main(String[] args) {
Parser p = null;
FileReader cssReader = null;
MyCssDocumentHandler cssDocHandle = new MyCssDocumentHandler();
try {
p = new Parser();
cssReader = new FileReader("test.css");
p.setDocumentHandler(cssDocHandle);
p.parseStyleSheet(new InputSource(cssReader));
} catch (CSSException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Die Klasse MyCssDocumentHandler habe ich natürlich selbst geschrieben.
Sie implementiert das Interface: import org.w3c.css.sac.DocumentHandler
Nun knallt man alle Methoden rein und schon kanns losgehen
Eigentlich einfacher als man denkt. Aber ich habe einfach den ganzen Krams
total verrafft. Naja nun läufts. Mein Problem war das ich das abhängige lib
batik-util.jar nicht mit eingebunden haben - so gabs etliche exceptions mit
denen ich nix anfangen konnte.
Danke für die Hilfe!
lg
Zuletzt bearbeitet: