• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: XML Namespace Definitions on Non-Root Elements
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: XML Namespace Definitions on Non-Root Elements


  • Subject: Re: XML Namespace Definitions on Non-Root Elements
  • From: Matt Neuburg <email@hidden>
  • Date: Sat, 05 Mar 2011 12:27:12 -0800

On Fri, 04 Mar 2011 14:25:06 -0600, Heath Borders <email@hidden> 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@hidden, <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@hidden)

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:

This email sent to email@hidden

  • Follow-Ups:
    • Re: XML Namespace Definitions on Non-Root Elements
      • From: Heath Borders <email@hidden>
  • Prev by Date: Re: Accepting current edited text field contents
  • Next by Date: Re: Outlets Not Connected In awakeFromNib
  • Previous by thread: XML Namespace Definitions on Non-Root Elements
  • Next by thread: Re: XML Namespace Definitions on Non-Root Elements
  • Index(es):
    • Date
    • Thread