[Expat-discuss] XML_ERROR_JUNK_AFTER_DOC_ELEMENT - How to resolve

Terry Ebaugh tebaugh at gmail.com
Tue Sep 19 07:24:32 CEST 2006


Nick pinpointed my problem.    I didn't have any trouble parsing the files
individually it only happened when I tried to pipe multiple documents to the
parser via stdin.

 

So now I'll either set up a filter or ignore the error message and be
clever.  

 

Thanks for the help!

 

Terry

 

-------------------------------------------------
Date: Monday, Sep 18th,2006

C:\pet C:\pet\cat C:\pet\cat\ignore\human







  _____  

From: Mukesh S [mailto:Mukesh.S at mphasis.com] 
Sent: Tuesday, September 19, 2006 1:08 AM
To: Terry Ebaugh; expat-discuss at libexpat.org
Subject: RE: [Expat-discuss] XML_ERROR_JUNK_AFTER_DOC_ELEMENT - How to
resolve

 

Hi,

Have you tried with individual files likes instead of reading all the files,
I suggest you to go for baby steps.

Like 

Step1 ) read the first xml file, and close it ,and immediate within you
function open another file,that make sense.

 

Step2) the next will be yours, check for the proper tag, if you are sure
that all the xml files you have same format expect the data is different
then it will works.

 

 

My Small web-page:

http://www.geocities.com/muki_champs

 

Regards,

Mukesh Srivastav,

Sr.Software Engineer.

India,

Bangalore.

+91-9980142921 (M)

 

 

 

-----Original Message-----
From: expat-discuss-bounces at libexpat.org
[mailto:expat-discuss-bounces at libexpat.org] On Behalf Of Terry Ebaugh
Sent: Tuesday, September 19, 2006 4:15 AM
To: expat-discuss at libexpat.org
Subject: [Expat-discuss] XML_ERROR_JUNK_AFTER_DOC_ELEMENT - How to resolve

 

Hi,

 

I've just started working with expat.  I have xml files that are gzipped.  I

gzcat them and pipe them to my parser.

I am getting the XML_ERROR_JUNK_AFTER_DOC_ELEMENT error message and I'm

unsure how to resolve.  I was under the impression that it

is caused by extracter character after a document root close tag.  I tried

stripping the chars after that close tag but that doesnt seem to work.  Is

this caused by a new document starting immediately after the first one has

finished?

 

Does anyone have any suggestions?

 

Here is the error message and what was in the buffer:

 

Parse error:file:1:row:4:column:0:reason:junk after document element

BUFFER = nter></usage></dataSet></metrics>

 

<?xml version='1.0' encoding='UTF-8'?>

<metrics version="3.0" cr

 

 

 

My main loop where I read stdin and call the parser is below:

 

/***********************************************************************/

  /* Read stdin                                                          */

  /***********************************************************************/

  for (;;) {

    len = (int)fread(buff, 1, BUFFSIZE-1, stdin);

    if (ferror(stdin)) {

      fprintf(stderr,"Error reading stdin\n");

      exit(-2);

    }

    done = feof(stdin);

    //if nothing read then exit so AI doesnt blow up

    if ((len == 0) && (done) && (cur_file_num==0))

       break;

 

   if(XML_Parse(p, buff, strlen(buff), done) == XML_STATUS_ERROR){

          fprintf(stderr, "\nParse error at

host:%s:file:%d:row:%d:column:%d:reason:%s\n",

                 host, cur_file_num, XML_GetCurrentLineNumber(p),

                 XML_GetCurrentColumnNumber(p),

XML_ErrorString(XML_GetErrorCode(p)));

          fprintf(stderr,"BUFFER = %s\n",buff);

          exit(-3);

     }

    if(done)

      break;

    }

 

    /* Free memory used by the parser */

    if(p) {

      XML_ParserFree(p);

    }

  return 0;

}

_______________________________________________

Expat-discuss mailing list

Expat-discuss at libexpat.org

http://mail.libexpat.org/mailman/listinfo/expat-discuss



More information about the Expat-discuss mailing list