Getting Line #-1; Column #-1; Premature end of file Error while xslt transform
XSL :
<xsl:template match="/">
<html>
<head>
<title>Real's HowTo</title>
</head>
<body>
<table border="1">
<tr>
<th>Titleamit</th>
<th>Link</th>
</tr>
<xsl:for-each select="mx:feed/mx:entry">
<tr>
<td>
<xsl:value-of select="mx:title" />
</td>
<td>
<xsl:value-of select="mx:published" />
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
XML:
<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<title>
Sprint Community: Space Polls - Android
</title>
<link rel="alternate" href="http://community.sprint.com/baw/poll.jspa?containerType=14&container=2130" />
<subtitle>
List of polls
</subtitle>
<id>
http://community.sprint.com/baw/poll.jspa?containerType=14&container=2130
</id>
<generator uri="http://jivesoftware.com/products/clearspace/" version="4.5.4.1">
Jive SBS
</generator>
<updated>
2010-02-08T17:30:00Z
</updated>
<dc:date>
2010-02-08T17:30:00Z
</dc:date>
<dc:language>
en
</dc:language>
<entry>
<title>
What's Valuable
</title>
<link rel="alternate" href="http://community.sprint.com/baw/poll.jspa?poll=1062" />
<author>
<name>
wengla02
</name>
<uri>
/people/wengla02
</uri>
<email>
[email protected]
</email>
</author>
<updated>
2010-02-08T17:30:00Z
</updated>
<published>
2010-02-08T17:30:00Z
</published>
<summary type="html" />
<dc:date>
2010-02-08T17:30:00Z
</dc:date>
<clearspace:dateToText>
1 year, 2 months ago
</clearspace:dateToText>
<clearspace:objectType>
0
</clearspace:objectType>
</entry>
</feed>
Java code:
// load xslt fromxsltFilePath
url = getClass().getClassLoader().getResource("com/sprint/mysprint/phoneMedia/myPhoneAndMedia/xsl/announcementFeed.xsl");
BufferedInputStream bis3= new BufferedInputStream(url.openStream());
if (isLoggingDebug()) {
BufferedInputStream bis1= new BufferedInputStream(url.openStream());
byte[] buffer1 = new byte[1024];
int bytesRead1 = 0;
while ((bytesRead1 = bis1.read(buffer1)) != -1) {
String chunk1 = new String(buffer1, 0, bytesRead1);
logDebug(" " + chunk1);
}
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
// create xslt Template
Templates template = transformerFactory.newTemplates(
new StreamSource(new DataInputStream(url.openStream())));
// Create Transformer
Transformer transformer = template.newTransformer();
transformer.transform(
new StreamSource(bis), new StreamResult(xhtmlContent));
The &
ampersand signs are not escaped in your xml. You should change them to &
in order to be able to parse the xml data, otherwise it won't work.
After parsing and transforming, wrapping, whatever, you can update the results by changing these characters back.