Re: efficiency of Xquery vs NSXMLElement attributes
Re: efficiency of Xquery vs NSXMLElement attributes
- Subject: Re: efficiency of Xquery vs NSXMLElement attributes
- From: "Michael Ash" <email@hidden>
- Date: Thu, 11 Dec 2008 12:24:27 -0500
On Thu, Dec 11, 2008 at 1:00 AM, Kieren Eaton <email@hidden> wrote:
> Hi All
>
> I know there are always several ways to do things and have come across
> something which puzzles me as to
> the efficiency of these 2 ways of getting the same data from an NSXMLNode
> object.
>
> for this exercise assume theNode is an NSXMLNode object which has been
> initialized and contains data and an attribute called class with something
> in it.
>
> Scenario 1
>
> NSXMLElement *nodeAsElement = (NSXMLElement *)theNode;
> NSString *attribContent = [[nodeAsElement attributeForName:@"class"]
> stringValue];
> NSLog(@"class contains %@",attribContent);
>
> Scenario 2
>
> NSString *attribContent = [[theNode objectsForXQuery:@"data(@class)"
> error:nil] objectAtIndex:0];
> NSLog(@"class contains %@",attribContent);
>
> these will and do produce the same data but for my own personal knowledge I
> would like to know which is more efficient.
> I use both in my code but am leaning more towards the xquery style for
> readability and maintainability of larger more nested structures.
>
> Comments appreciated
I'd guess that #1 is going to be faster, simply because #2 has to
parse the string and #1 does not.
However, does it matter? Unless you're doing this over and over again
in a tight loop, it probably doesn't make any difference which one you
use, so go for the one you think is more readable.
If it really does make a difference then you're in a perfect situation
to find out for yourself. Try both, and measure how much time each one
takes, and you will have your answer.
Mike
_______________________________________________
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