org.xml.sax.SAXParseException: Premature end of file

Discussion in 'Java' started by laredotornado, Oct 20, 2011.

  1. Hi,

    I'm using Java 6. I'm trying to parse some well-formed (or at least
    that's what I thought) XML but am getting a "SAXParseException:
    Premature end of file" exception (below). The code I'm using is

    xml = xml.trim();
    final InputStream inputStream = new
    ByteArrayInputStream(xml.getBytes());
    final DocumentBuilderFactory dbf =
    DocumentBuilderFactory.newInstance();
    final DocumentBuilder db = dbf.newDocumentBuilder();
    final Document doc = db.parse(xmlInputStream);

    The block I'm trying to parse is below. Can anyone see how it is mal-
    formed? Barring that, do you know a better way of parsing the string?

    <div class="">
    <label
    for="id417474726962757465205b6e616d653d6e616d652c2076616c75653d4c697374696e672052756c652c20706172656e744e6f64653d546578744e6f6465205b746578743d6e756c6c2c20444e6f64653d444e6f6465205b69643d305d5d5d">400</
    label><br/>
    <input
    id="id417474726962757465205b6e616d653d6e616d652c2076616c75653d4c697374696e672052756c652c20706172656e744e6f64653d546578744e6f6465205b746578743d6e756c6c2c20444e6f64653d444e6f6465205b69643d305d5d5d"
    name="id417474726962757465205b6e616d653d6e616d652c2076616c75653d4c697374696e672052756c652c20706172656e744e6f64653d546578744e6f6465205b746578743d6e756c6c2c20444e6f64653d444e6f6465205b69643d305d5d5d"
    type="text" value="
    15 months of jun, jul, aug, sep, oct
    " style="width:400px;" />
    </div>

    Thanks, - Dave

    ps - The error ...

    org.xml.sax.SAXParseException: Premature end of file.
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
    at com.myco.clearing.commons.xmlparser.XMLParser.parse(XMLParser.java:
    53)
    at com.myco.clearing.commons.xmlparser.XMLParser.parse(XMLParser.java:
    35)
    at com.myco.clearing.commons.xmlparser.XMLParser.parse(XMLParser.java:
    80)
    at com.myco.clearing.commons.xmlparser.XMLParser.parse(XMLParser.java:
    35)
    at
    com.myco.pplus2.util.XmlToHtmlServiceTest.testInput(XmlToHtmlServiceTest.java:
    52)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
    39)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
    25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod
    $1.runReflectiveCall(FrameworkMethod.java:44)
    at
    org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:
    15)
    at
    org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:
    41)
    at
    org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:
    20)
    at
    org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:
    28)
    at
    org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
    76)
    at
    org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
    50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at
    org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:
    50)
    at
    org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
    38)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
    467)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:
    683)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:
    390)
    at
    org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:
    197)
     
    laredotornado, Oct 20, 2011
    #1
    1. Advertising

  2. laredotornado

    markspace Guest

    On 10/20/2011 8:41 AM, laredotornado wrote:

    > I'm using Java 6. I'm trying to parse some well-formed (or at least
    > that's what I thought) XML but am getting a "SAXParseException:



    It worked for me.


    > Premature end of file" exception (below). The code I'm using is



    No, this is not the code. There's a syntax error: inputStream and
    xmlInputStream are being confused here, xmlInputStream is not declared.


    >
    > xml = xml.trim();
    > final InputStream inputStream = new
    > ByteArrayInputStream(xml.getBytes());
    > final DocumentBuilderFactory dbf =
    > DocumentBuilderFactory.newInstance();
    > final DocumentBuilder db = dbf.newDocumentBuilder();
    > final Document doc = db.parse(xmlInputStream);
    >
    > The block I'm trying to parse is below. Can anyone see how it is mal-
    > formed? Barring that, do you know a better way of parsing the string?



    Yes, there's a syntax error in the XML. Construct a proper SSCCE to see it.
     
    markspace, Oct 20, 2011
    #2
    1. Advertising

  3. On Oct 20, 12:04 pm, markspace <-@.> wrote:
    > On 10/20/2011 8:41 AM, laredotornado wrote:
    >
    > > I'm using Java 6.  I'm trying to parse some well-formed (or at least
    > > that's what I thought) XML but am getting a "SAXParseException:

    >
    > It worked for me.
    >
    > > Premature end of file" exception (below).  The code I'm using is

    >
    > No, this is not the code.  There's a syntax error: inputStream and
    > xmlInputStream are being confused here, xmlInputStream is not declared.
    >
    >
    >
    > >            xml = xml.trim();
    > >            final InputStream inputStream = new
    > > ByteArrayInputStream(xml.getBytes());
    > >            final DocumentBuilderFactory dbf =
    > > DocumentBuilderFactory.newInstance();
    > >            final DocumentBuilder db = dbf.newDocumentBuilder();
    > >            final Document doc = db.parse(xmlInputStream);

    >
    > > The block I'm trying to parse is below.  Can anyone see how it is mal-
    > > formed?  Barring that, do you know a better way of parsing the string?

    >
    > Yes, there's a syntax error in the XML.  Construct a proper SSCCE to see it.


    You mean a syntax error in the Java? Ok, here it is ...

    public static com.myco.clearing.commons.xml.Node parse(String xml)
    throws
    ParserConfigurationException, SAXException, IOException {
    xml = xml.trim();
    return parse(new ByteArrayInputStream(xml.getBytes()));
    }

    /**
    *
    * @param xml
    * @return Parsed xml
    * @throws XMLParseException
    * @throws ParserConfigurationException
    * @throws IOException
    * @throws SAXException
    */
    public static com.myco.clearing.commons.xml.Node parse(final
    InputStream xmlInputStream)
    throws ParserConfigurationException,
    SAXException, IOException {

    final DocumentBuilderFactory dbf =
    DocumentBuilderFactory.newInstance();
    final DocumentBuilder db = dbf.newDocumentBuilder();
    final Document doc = db.parse(xmlInputStream);
    doc.getDocumentElement().normalize();

    If you mean the XML, what is the XML syntax error or what tool can I
    use to see it? - Dave
     
    laredotornado, Oct 20, 2011
    #3
  4. On 20/10/2011 17:41, laredotornado allegedly wrote:
    > xml = xml.trim();
    > final InputStream inputStream = new
    > ByteArrayInputStream(xml.getBytes());
    > final DocumentBuilderFactory dbf =
    > DocumentBuilderFactory.newInstance();
    > final DocumentBuilder db = dbf.newDocumentBuilder();
    > final Document doc = db.parse(xmlInputStream);


    > final InputStream inputStream = new
    > ByteArrayInputStream(xml.getBytes());


    Don't do this.

    Instead:

    db.parse( new InputSource( new StringReader(xml) ) );

    --
    DF.
    Determinism trumps correctness.
     
    Daniele Futtorovic, Oct 20, 2011
    #4
  5. laredotornado

    Lew Guest

    DO NOT POST CODE USING TAB AS AN INDENTATION CHARACTER!

    Bad!

    laredotornado wrote:
    > You mean a syntax error in the Java? Ok, here it is ...
    >
    > public static com.myco.clearing.commons.xml.Node parse(String xml)
    > throws
    > ParserConfigurationException, SAXException, IOException {
    > xml = xml.trim();
    > return parse(new ByteArrayInputStream(xml.getBytes()));


    Encoding?

    > }
    >
    > /**
    > *
    > * @param xml


    Where is 'xml'?

    > * @return Parsed xml


    What is the definition of 'Parsed'?

    > * @throws XMLParseException


    No, it doesn't.

    > * @throws ParserConfigurationException
    > * @throws IOException
    > * @throws SAXException
    > */
    > public static com.myco.clearing.commons.xml.Node parse(final
    > InputStream xmlInputStream)
    > throws ParserConfigurationException,
    > SAXException, IOException {
    >
    > final DocumentBuilderFactory dbf =
    > DocumentBuilderFactory.newInstance();
    > final DocumentBuilder db = dbf.newDocumentBuilder();
    > final Document doc = db.parse(xmlInputStream);
    > doc.getDocumentElement().normalize();
    >
    > If you mean the XML, what is the XML syntax error or what tool can I
    > use to see it?


    Is there a newline at the end of your XML?

    GIYF:
    <http://www.w3schools.com/xml/xml_validator.asp>

    --
    Lew
     
    Lew, Oct 20, 2011
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Angela Robert
    Replies:
    0
    Views:
    3,711
    Angela Robert
    Jun 27, 2003
  2. Marcin Cenkier
    Replies:
    2
    Views:
    6,251
    Marcin Cenkier
    Jan 19, 2006
  3. Replies:
    0
    Views:
    2,732
  4. KaR
    Replies:
    1
    Views:
    484
  5. PerlFAQ Server
    Replies:
    0
    Views:
    693
    PerlFAQ Server
    Feb 3, 2011
Loading...

Share This Page