XML-XSL Wrapper für Java der Prototyp:

8
© Nicole Bachner & Michael Soemers XML-XSL in Java totyp Xml-Xsl-Wrapper 15.05.2000 XML-XSL Wrapper für Java der Prototyp: • XXWrapper • ParserTest • PicOut • xslFile.xsl • xmlFile.xml

description

XML-XSL Wrapper für Java der Prototyp:. XXWrapper ParserTest PicOut xslFile.xsl xmlFile.xml. public class XXWrapper { private final static String PARSER_CLASS ="com.jclark.xml.sax.Driver"; StringWriter XMLWriter=null; String stylesheet=""; - PowerPoint PPT Presentation

Transcript of XML-XSL Wrapper für Java der Prototyp:

Page 1: XML-XSL Wrapper für Java der Prototyp:

© Nicole Bachner & Michael Soemers

XML-XSL in Java

Prototyp Xml-Xsl-Wrapper 15.05.2000

XML-XSL Wrapper für Java

der Prototyp:

• XXWrapper• ParserTest• PicOut• xslFile.xsl• xmlFile.xml

Page 2: XML-XSL Wrapper für Java der Prototyp:

© Nicole Bachner & Michael Soemers

XML-XSL in Java

Prototyp Xml-Xsl-Wrapper 15.05.2000

public class XXWrapper{ private final static String PARSER_CLASS ="com.jclark.xml.sax.Driver";

StringWriter XMLWriter=null;String stylesheet="";

public XXWrapper(String stylesheet, StringWriter XMLWriter) { this.stylesheet=stylesheet; this.XMLWriter=XMLWriter;

} public String parse() throws ServletException, IOException {

XSLProcessor xslProcessor = createXSLProcessor(stylesheet); StringReader reader = new StringReader(XMLWriter.toString()); File temp = transformAndWrite(xslProcessor,reader); return setFileToString(temp);

} public String setFileToString(File temp) throws ServletException {

String s="";String output="";try{

BufferedReader reader = new BufferedReader(new FileReader(temp));while((s=reader.readLine()) != null){

output = output + s + "\n";}

}catch (Exception e){

throw new ServletException(e.toString());}return output;

}

• XXWrapper• ParserTest• PicOut• xslFile.xsl• xmlFile.xml

Page 3: XML-XSL Wrapper für Java der Prototyp:

© Nicole Bachner & Michael Soemers

XML-XSL in Java

Prototyp Xml-Xsl-Wrapper 15.05.2000

• XXWrapper• ParserTest• PicOut• xslFile.xsl• xmlFile.xml

protected XSLProcessor createXSLProcessor(String url) throws ServletException, IOException { Parser parser = null; try { Class clasz = Class.forName(PARSER_CLASS); parser = (Parser)clasz.newInstance(); } catch(ClassNotFoundException e) { throw new ServletException(e.toString()); } catch(InstantiationException e) { throw new ServletException(e.toString()); } catch(IllegalAccessException e) { throw new ServletException(e.toString()); }

XSLProcessor xslProcessor = new XSLProcessorImpl(); xslProcessor.setParser(parser);

Reader XSLReader = new FileReader(url); InputSource inputSource = new InputSource(XSLReader);

try { xslProcessor.loadStylesheet(inputSource); } catch (SAXException e) { throw new ServletException(e.toString()); } return xslProcessor; }

Page 4: XML-XSL Wrapper für Java der Prototyp:

© Nicole Bachner & Michael Soemers

XML-XSL in Java

Prototyp Xml-Xsl-Wrapper 15.05.2000

• XXWrapper• ParserTest• PicOut• xslFile.xsl• xmlFile.xml

protected File transformAndWrite(XSLProcessor xslProcessor, Reader reader) throws ServletException, IOException { OutputMethodHandlerImpl outputMethodHandler = new OutputMethodHandlerImpl(xslProcessor); xslProcessor.setOutputMethodHandler(outputMethodHandler); File temp = File.createTempFile("xxwrapper", ".tmp"); outputMethodHandler.setDestination(new FileDestination(temp)); try { xslProcessor.parse(new InputSource(reader)); } catch (Exception e) { throw new ServletException(e.toString()); } return temp; }}

Page 5: XML-XSL Wrapper für Java der Prototyp:

© Nicole Bachner & Michael Soemers

XML-XSL in Java

Prototyp Xml-Xsl-Wrapper 15.05.2000

public class ParserTest extends HttpServlet{ StringWriter XMLWriter=null;

String output = "";

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html");

PrintWriter writer = response.getWriter(); XMLWriter = new StringWriter(); try { setXMLData(new File("/home/httpd/htdocs/servlets/" +"de/wpp/xml/xmlFile.xml"), XMLWriter); } catch (Exception ioe) {log(ioe.toString()); } XXWrapper wrapper = new XXWrapper("/home/httpd/htdocs/" +"servlets/de/wpp/xml/xslFile.xsl", XMLWriter); output=wrapper.parse(); writer.println(output);}

protected void setXMLData(File xmlFile, Writer w)

throws IOException { String s="";

BufferedReader r = new BufferedReader(new FileReader(xmlFile)); while ((s=r.readLine()) != null) {w.write(s); } w.flush();

} }

• XXWrapper• ParserTest• PicOut• xslFile.xsl• xmlFile.xml

Page 6: XML-XSL Wrapper für Java der Prototyp:

© Nicole Bachner & Michael Soemers

XML-XSL in Java

Prototyp Xml-Xsl-Wrapper 15.05.2000

• XXWrapper• ParserTest• PicOut• xslFile.xsl• xmlFile.xml

public class PicOut extends HttpServlet {protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {

PrintWriter writer=response.getWriter(); response.setContentType("image/gif"); try { int bufferSize=65535;

File pic = new File(request.getParameter("filename")); InputStreamReader picStream = new InputStreamReader(new FileInputStream(pic));

char buf[] = new char[bufferSize]; long size=pic.length(); while (size>0) {

if (size<bufferSize) { bufferSize=(int)size; } int b=picStream.read(buf,0,bufferSize);

writer.write(buf,0,bufferSize); size=size-bufferSize;

} picStream.close(); } catch (IOException e) { writer.println("Bild nicht gefunden"); } writer.close();

}}

Page 7: XML-XSL Wrapper für Java der Prototyp:

© Nicole Bachner & Michael Soemers

XML-XSL in Java

Prototyp Xml-Xsl-Wrapper 15.05.2000

• XXWrapper• ParserTest• PicOut• xslFile.xsl• xmlFile.xml

<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/TR/REC-html40" result-ns=""><xsl:output method="html"/><xsl:template match="/"> <HTML><HEAD> <TITLE>XML/XSL-Testseite</TITLE> <link rel="stylesheet" type="text/css" href="http://139.6.67.191/~hebtyp/hebtyp.css"/> </HEAD> <BODY bgcolor="#ffffff"> <div align="center"><font size="6">XML/XSL Test</font><br/><br/> <table width="90%" border="0"> <tr><td colspan="5">Hier werden einige Daten mit Hilfe der XSL/XML-Technologie dargestellt. Etwas Text und dann auch einige GIFs.<br/> <br/> </td></tr> <xsl:for-each select="liste/item"> <TR> <TD bgcolor="#dddddd"><xsl:value-of select="vorname"/> </TD> <TD bgcolor="#dddddd"><xsl:value-of select="name"/> </TD> <TD bgcolor="#dddddd"><a><xsl:attribute name="href">mailto:<xsl:value-of select="email"/> </xsl:attribute>

<xsl:value-of select="email"/> </a></TD> <TD bgcolor="#dddddd"><a><xsl:attribute name="href"> <xsl:value-of select="homepage"/> </xsl:attribute>

<xsl:value-of select="homepage"/> </a></TD> <TD bgcolor="#dddddd"><img><xsl:attribute name="src"> http://139.6.67.191/servlets/de.wpp.xml.PicOut?filename=<xsl:value-of select="image"/> </xsl:attribute></img></TD> </TR> </xsl:for-each> </table><br/><br/>(c) SoeBa Inc.</div></BODY></HTML></xsl:template></xsl:stylesheet>

Page 8: XML-XSL Wrapper für Java der Prototyp:

© Nicole Bachner & Michael Soemers

XML-XSL in Java

Prototyp Xml-Xsl-Wrapper 15.05.2000

• XXWrapper• ParserTest• PicOut• xslFile.xsl• xmlFile.xml

<?xml version="1.0" encoding="ISO-8859-1"?><liste><item id="1">

<vorname>Nicole</vorname><name>Bachner</name><email>[email protected]</email>

<homepage>http://www.need-speed.de</homepage><image>/home/httpd/htdocs/chet.gif</image>

</item><item id="2">

<vorname>Michael</vorname><name>Soemers</name><email>[email protected]</email>

<homepage>http://www.soemers.de</homepage><image>/home/httpd/htdocs/bet.gif</image>

</item><item id="3">

<vorname>Magnus</vorname><name>Paprotta</name><email>[email protected]</email>

<homepage>http://www.gm.fh-koeln.de/~ia194</homepage><image>/home/httpd/htdocs/ajin.gif</image>

</item></liste>