Re: [xml-dev] JDOM XSLT TransformerConfigurationException
at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source)
at org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.skipChar(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache..xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces..parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:928)
Any ideas on what is the cause of this issue and how to overcome it? Likewise, how to define the correct proper namespace prefix? Is it possible that this document has two namespaces. A default one and one with prefix 'html'? If so, which one should I use?
From: Michael Kay <[email protected]>
To: Jack Bush <[email protected]>; [email protected]
Sent: Saturday, 3 January, 2009 1:02:10 AM
Subject: RE: [xml-dev] JDOM XSLT TransformerConfigurationException
From: Jack Bush [mailto:[email protected]]
Sent: 02 January 2009 13:54
To: [email protected]
Subject: [xml-dev] JDOM XSLT TransformerConfigurationExceptionHi All,I am getting the following exception when trying to do simple transformation (newbie in JDOM XSLT) using either XSLTransformer/TrAX in JDOM:
javax.xml.transform.TransformerConfigurationException: java.io.EOFException: no more input
at com.icl.saxon.PreparedStyleSheet.prepare(PreparedStyleSheet.java:121)
at com.icl.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:120)
at com.icl.saxon.TransformerFactoryImpl..newTransformer(TransformerFactoryImpl.java:72)
at standaloneClientRemoteInvestmentBean.JDOMTrAXPojoInvestmentBean.retrieveAreaZipcode(JDOMTrAXPojoInvestmentBean.java:68)
at standaloneClientRemoteInvestmentBean.JDOMTrAXPojoInvestmentBean.main(JDOMTrAXPojoInvestmentBean.java:37)
Caused by: java.io..EOFException: no more input
at com.icl.saxon.aelfred.XmlParser.popInput(XmlParser.java:4083)
at com.icl.saxon.aelfred.XmlParser.pushURL(XmlParser.java:3620)
at com.icl.saxon.aelfred.XmlParser.doParse(XmlParser.java:159)
at com.icl.saxon.aelfred.SAXDriver.parse(SAXDriver.java:320)
at com.icl.saxon.om.Builder.build(Builder.java:265)
at com.icl.saxon.PreparedStyleSheet.prepare(PreparedStyleSheet..java:111)
... 4 more
Below is the stateStyleSheet:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www..w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Transformed State Detail</h2>
<table border="1">
<tr bgcolor="lightblue">
<th align="left">Area Link</th>
<th align="left">Area Name</th>
</tr>
<xsl:for-each select="/ns:html/ns:body/ns:div[@id='content']/ns:table[@class='sresults']/ns:tr/ns:td/ns:a">
<tr>
<td><xsl:value-of select="@href"/></td>
<td><xsl:value-of select="@title"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
The Java program that calls this stateStyleSheet is as follows:
SAXBuilder statesaxBuilder = new SAXBuilder("org.ccil.cowan.tagsoup.Parser", false);
org.jdom.Document stateDocument = statesaxBuilder.build("state.xml");
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource("stateStyleSheet.xsl"));
JDOMSource source = new JDOMSource(stateDocument);
JDOMResult result = new JDOMResult();
transformer.transform(source, result);
Document tranformedDocument = result.getDocument();
......
Could this exception have been caused by incorrectly formatted stateStyleSheet? The search path "/ns:html/ns:body/ns:div[@id='content']/ns:table[@class='sresults']/ns:tr/ns:td/ns:a" has successfully worked in XPath such as the following lines:
XPath statePath = XPath.newInstance("/ns:html/ns:body/ns:div[@id='content']/ns:table [@class='sresults']/ns:tr/ns:td/ns:a");
statePath.addNamespace("ns", http://www.w3.org/1999/xhtml);
Whether including namespace ("ns") or not doesn't make any difference.
I am running JDK1.6, Netbeans 6.1, JDOM 1.1, Saxon 6.5, TagSoup 1.2 on Windows XP platform.
Your assistance would be much appreciated.
Many thanks,
Jack
Stay connected to the people that matter most with a smarter inbox. Take a look.
Stay connected to the people that matter most with a smarter inbox. Take a look.
Stay connected to the people that matter most with a smarter inbox. Take a look.