That worked! I actually changed it to:
nodesForXPath:@"/root/*[name() = \"example:foo\"] Thanks! -Heath Borders [email protected] Twitter: heathborders http://heath-tech.blogspot.com On Sat, Mar 5, 2011 at 2:27 PM, Matt Neuburg <[email protected]> wrote: > On Fri, 04 Mar 2011 14:25:06 -0600, Heath Borders <[email protected]> > said: >>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? > > It's no use just saying "example:"; you have to have a way to tell it what > "example:" *is* - i.e. you have to bind the namespace - and you don't have a > way to do that from here. One option is to bypass the namespace altogether: > > nodesForXPath:@"//*[local-name()='foo']" > > m. > > > -- > matt neuburg, phd = [email protected], <http://www.apeth.net/matt/> > A fool + a tool + an autorelease pool = cool! > Programming iOS 4! > http://www.apeth.net/matt/default.html#iosbook _______________________________________________ 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]
