Re: Parsing XML
Re: Parsing XML
- Subject: Re: Parsing XML
- From: Frank Midgley <email@hidden>
- Date: Fri, 1 Apr 2005 18:55:47 -0600
On Apr 1, 2005, at 6:03PM, Mark Dawson wrote:
I've saved out my document as an XML file correctly, as far as I can
tell (although the error, list below happens, it SEEMs like a
well-formed line) I'm having problems reading it back in, though.
The problem has to do with a saved array of objects. The objects
"write" themselves out correctly, by implementing the "- (NSString
*)description" method (returning "{1, 1}" type values-- #, #).
However, I'm not sure how to read the array back in.
The code I started with does:
- (NSDictionary *)myDocumentDictionaryFromData:(NSData *)data {
NSString *string = [[NSString allocWithZone:[self zone]]
initWithData:data encoding:NSASCIIStringEncoding];
NSDictionary *doc = [string propertyList];
the [string propertyList]; line is the one that errors with the array
descriptors (in the console, I get a "XML parser error:
Unexpected character { at line 1
Old-style plist parser error:
Expected terminating ')' for array at line 19" for the line:
Points = ({199, 148}, {90, 219}, {196, 273}, {270, 222});
What I don't know how to do is tell the parser how to deal with the
key "Points". I've written a parser for the object (converting the
{199, 148} back into an NSPoint), but I don't know how to get it
invoked…
Thanks for any suggestions,
That data is not property list compatible because of the curly braces.
You need to wrap each point in quotes:
Points = ("{199, 148}", "{90, 219}", "{196, 273}", "{270, 222}");
and then parse each string when you load it back in.
Alternatively you could use custom XML instead of property lists and
use CF/NSXMLParser to read it in. (The NS version is only available on
Panther and later.) Then you can have XML like:
<PARENT_OBJ>
<POINT X="199" Y="148" />
<POINT X="90" Y="219" />
<POINT X="196" Y="273" />
<POINT X="270" Y="222" />
</PARENT_OBJ>
and the parser does all of the parsing for you (oddly enough). You
don't have to tweeze out the curly braces and the commas, worry about
whitespace if someone hand tweaks the plist file, etc.
-Frank
------------------------------------
Frank M. Midgley
email@hidden
http://homepage.mac.com/knarf/
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
References: | |
| >Parsing XML (From: Mark Dawson <email@hidden>) |