Re: [xml] XPath / LibXML question

On 6/1/06, Alan_McCarthy scee net <Alan_McCarthy scee net> wrote:


I have a question about XPath and have been pointed in the direction of
this mailing list. Hope this is the correct place.

I have the following XPath:

/base/group/item[ att1=1]/instances/instance[ att2=2]

and when used on my XML document it returns multiple items, e.g.

/base[1]/group[1]/item[167]/instances[1]/instance[1] - result
/base[1]/group[1]/item[195]/instances[1]/instance[1] - result
/base[1]/group[1]/item[197]/instances[1]/instance[1] - result
/base[1]/group[1]/item[202]/instances[1]/instance[1] - result
/base[1]/group[1]/item[216]/instances[1]/instance[1] - result

In this particular instance however, I only need to find one of the
results, and it doesn't matter which one.
For CPU efficiency I would like to find a way to do that.
Does anyone know how I can achieve this, ideally by  modifying my XPath,
but if that is not possible, if there are parameters, or context set up
that could be done within LibXML to restrict it to one result.

You could use a predicate such as [position() = 1] to get the first
result. I don't know if this saves you anything performance-wise
though, one of the libxml2 hackers will have to answer that.

This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
postmaster scee net

The above clause is incompatible with this list, since the list is
publicly archived. Don't use it, or use another e-mail address when

Best regards,
Aron Stansvik

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]