I'm trying to parse a document with a namespace declared on a non-root element:

<root><example:foo xmlns:example="http://example.com/foo";>This is an
exemplary foo!</example:foo></root>

I can read this xml into an NSXMLDocument just fine, but the following
XPath query on root returns a non-nil, but empty NSArray:

NSXMLNode *rootNode = ...// create my root node somehow
NSArray *exampleFooElements = [rootNode
nodesForXPath:@"/root/example:foo" error:nil];
// exampleFooElements != nil && [exampleFooElements count] == 0

However, if I add the namespace declaration to the root element,
everything is fine:

<root xmlns:example="http://example.com/foo";><example:foo>This is an
exemplary foo!</example:foo></root>

NSXMLNode *rootNode = ...// create my root node somehow
NSArray *exampleFooElements = [rootNode
nodesForXPath:@"/root/example:foo" error:nil];
// exampleFooElements != nil && [exampleFooElements count] == 1

I can do this change programmatically, but I'd rather not have to
modify the document.  This namespace usage should be legal.  Am I
doing something wrong?

Thanks!

-Heath Borders
[email protected]
Twitter: heathborders
http://heath-tech.blogspot.com
_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to