PDA

View Full Version : Can not parse simple XML




HARDWARRIOR
Mar 1, 2009, 03:22 AM
Hi!
I have a simple XML

<?xml version="1.0" encoding="utf-8"?><errorCode>2</errorCode><error>Invalid username</error>

and I want to parse it in my app.
First I tried touchXML, but it returned error

Entity: line 1: parser error : Extra content at the end of the document
<?xml version="1.0" encoding="utf-8"?><errorCode>2</errorCode><error>Invalid use
^


Dont know what it means. Googling for that error did not helped.
So I tried NSXMLParser and got error too

Parsing error: Operation could not be completed. (NSXMLParserErrorDomain error 5.)
parsing ended

error number 5 means

NSXMLParserPrematureDocumentEndError
The document ended unexpectedly.

accordinc to docs.
But I really dont understand where is error in such a simple XML! Also W3C online validar told me that XML is valid

docElt: {None}errorCode
No declaration for document root found, validation was lax
The schema(s) used for schema-validation had no errors
No schema-validity problems were found in the target

So where is error in that XML?



Pring
Mar 1, 2009, 05:40 AM
Your XML is invalid. Everything needs to be under a root element. Something like

<?xml version="1.0" encoding="utf-8"?>
<errorDetails>
<errorCode>2</errorCode>
<error>Invalid username</error>
</errorDetails>

chbeer
Mar 1, 2009, 05:42 AM
Hi!
I have a simple XML

<?xml version="1.0" encoding="utf-8"?><errorCode>2</errorCode><error>Invalid username</error>

[...]

So where is error in that XML?

It's no XML. You don't have a single root element. It helps a lot to reformat it:


<?xml version="1.0" encoding="utf-8"?>
<errorCode>
2
</errorCode>
<error>
Invalid username
</error>

You see, there is not one root-element but two: errorCode and error.

One correct version would be:

<?xml version="1.0" encoding="utf-8"?>
<error>
<errorCode>
2
</errorCode>
<errorText>
Invalid username
</errorText>
</error>


HTH

HARDWARRIOR
Mar 1, 2009, 06:09 AM
Thanks a lot!