Hello,
I have a .jsp that outputs a XML file. I have another .jsp in which I want
to parse the XML file using an XSL file. So in the latter .jsp I want to do
something like this:
<textarea><%
String xslFile = getServletContext().getRealPath("/xml/risc2cvs.xsl");
TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer
transformer = tFactory.newTransformer(new StreamSource(xslFile));
// write the content of the parsed XML file
transformer.transform(new
StreamSource("http://localhost/risc/readonly.jsp"), new StreamResult(out));
%></textarea>
However, when I do this, I get the following error message:
The element type "base" must be terminated by the matching end-tag "".
With this stack trace:
javax.xml.transform.TransformerException: The element type "base" must be
terminated by the matching end-tag "".
at
org.apache.xalan.transformer.TransformerImpl.fatalError(TransformerImpl.java
:744)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
720)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
1192)
at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
1170)
at
org.apache.jsp.cvs_005fuittreksel_jsp._jspService(cvs_005fuittreksel_jsp.jav
a:109)
...
When instead I try to parse a local XML file, there are no problems:
String xmlFile = getServletContext().getRealPath("/xml/temp.xml");
transformer.transform(new StreamSource(xmlFile), new StreamResult(out));
But then, when I try to parse the very same file as accessed through HTTP, I
get the very same error:
transformer.transform(new
StreamSource("http://localhost/risc/xml/temp.xml"), new StreamResult(out));
I was thinking that maybe the HTTP headers aren't stripped before the
parsing. Does anybody know what to do here?
Thanks in advance!
Jeroen