Re: NSXMLElement & Xpath
Re: NSXMLElement & Xpath
- Subject: Re: NSXMLElement & Xpath
- From: Rob Keniger <email@hidden>
- Date: Thu, 6 Dec 2007 12:17:23 +1000
On 06/12/2007, at 10:26 AM, Alexander Griekspoor wrote:
I bet a trivial question for experts but I couldn't find an answer
nevertheless. Given the following NSXML fragment:
<author>
<name>G. G. Kacprzak</name>
<arxiv:affiliation xmlns:arxiv="http://arxiv.org/schemas/
atom">NMSU</arxiv:affiliation>
</author>
With the XPath query: /author[1]/name[1] I correctly get the name
element
With the XPath query: /author[1]/arxiv:affiliation[1] I expect to
get the arxiv:affiliation element
However, the latter won't work, even though if I ask the rootelement
for its 2nd child and ask for its XPath, I do get /author[1]/
arxiv:affiliation[1] !!
The XQuery error I get returned says: can't resolve QName for
"arxiv:affiliation"
Can anyone tell me how to format the xpath or escape it such that I
get the element by its name?
I simply want to be able to do: [[xmlDoc rootElement] nodesForXPath:
@"//arxiv:affiliation" error: err]
I believe this can be slightly tricky because the arxiv:affiliation
element is not a plain element but an element with a namespace which
is treated quite differently in XPath. You can't just treat it as an
element with name "arxiv:affiliation", you have to deal with the
namespace first.
I've never had to do this myself but this article on the Microsoft
site seems to have some good info, even if it's MS-centric:
http://msdn2.microsoft.com/en-us/library/ms950779.aspx
--
Rob Keniger
_______________________________________________
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