Why am I getting a Premature End of File error when performing my XSLT conversion?

Getting line # -1; Column # -1; Premature end of file Error converting xslt

XSL:

<xsl:template match="/"> <html> <head> <title>Real 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 Valuable </title> <link rel="alternate" href="http://community.sprint.com/baw/poll.jspa?poll=1062" /> <author> <name> wengla02 </name> <uri> /people/wengla02 </uri> <email> noreply-buzz@sprint.com </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)); 
+4
source share
1 answer

Characters & ampersands are not escaped in your xml. You must change them to &amp; to be able to parse xml data, otherwise it will not work. After parsing and converting, wrapping, regardless of whether you can update the results by changing these characters.

+5
source

Source: https://habr.com/ru/post/1347698/


All Articles