[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Use of DOMXPathEvaluator
Hi Richard,
It looks like XQuery is (or is soon to be) a w3c standard as well:
http://www.w3.org/TR/xquery/
Though I'm still unclear as to whether we'll ever take advantage of all
that power.
Regards,
-David
Richard Jones wrote:
> Dave,
> I agree, we should discuss it, and look at any alternatives that might
> look better. XPath has the advantage of being a w3c-standardized
> interface.
> -rtj
>
> David Lawrence wrote:
>>
>> Hi Richard,
>>
>> Thanks for the example and the quick response. Your explanation
>> makes sense. I was confused since I was accessing the
>> DOMXPathEvaluator though the DOMDocument class, I though that it was
>> implementing the xpath evaluations.
>>
>> We should discuss this at our next software meeting (date and time
>> as yet not determined). In an attempt to get something working, I had
>> implemented an extremely simple parser. It works on only a very small
>> subset of the xpath syntax, but is capable of at least understanding
>> strings like the one you gave in your example. It would certainly be
>> desirable to have a fully XPath 1.0 compliant parser instead.
>> However, as you know, I am very cautious when it comes to package
>> creep. Also, if we are going to bring in a whole other package in
>> order to gain XPath compliance, then should we consider bringing in
>> something to do XQuery instead (i.e. XQilla)? Xalan, of course, has
>> the advantage that we already have some software in our repository
>> that uses it. How much power will we need here?
>>
>> Regards,
>> -David
>>
>> Richard Jones wrote:
>>> Dave,
>>>
>>> You may have noticed in the xerces API documentation that references
>>> to XPath objects do not have explicit types (void *). This is
>>> because xerces has hooks for xpath extensions but no support in the
>>> built-in classes. The evaluate method of the DOMXPathEvaluator is
>>> pure virtual, you may have noticed.
>>>
>>> The apache project that implements a full userspace xpath library is
>>> called xalan. Like xerces it comes in c++ and java implementations,
>>> and xalan is implemented on top of xerces. The download binary
>>> tarballs and installation instructions are very similar to xerces,
>>> and found on the web site http://xalan.apache.org. I installed
>>> xalan-c a long time ago at the same time as I installed xerces
>>> because it has a full XSLT translation engine in it. You may have
>>> it as well. The two versions (xerces and xalan) should be kept in
>>> sync.
>>>
>>> In the xalan distribution there are several sample programs to show
>>> how the xpath API works. I took one of them, SimpleXPathAPI.cpp,
>>> and tweaked it to work with the hdds geometry document tree. You
>>> can find it in subversion within the hdds package called
>>> xpath-example.cpp. Makefile knows how to build it, provided that
>>> your setup script defines the environment variable XALANCROOT.
>>>
>>> For example, to extract the atomic number of Antimony from the
>>> materials db, go into the hdds directory, make xpath-example, and
>>> try the following command.
>>>
>>> $ ./xpath-example main_HDDS.xml /
>>> '//hdds:element[@name="Antimony"]/@a'
>>> The string value of the result is:
>>> 121.75
>>>
>>>
>>>
>>> David Lawrence wrote:
>>>>
>>>> Hi Richard,
>>>>
>>>> I am currently working on the API through which JANA will read
>>>> in geometry information. My plan is to have it read in from the
>>>> hdds file using xerces. After doing a little web research, I have
>>>> come upon something you mentioned some time ago, xpath. It seems
>>>> this is the appropriate way to specify a node for which one needs
>>>> the value of a specific attribute. (Unless you have a better
>>>> suggestion).
>>>>
>>>> I have been trying to use it with the evaluate method of a
>>>> DOMDocument object which looks like it inherits from
>>>> DOMXPathEvaluator. I have not had much luck getting it to work yet
>>>> and can't seem to find any examples on the Web. Have you used this
>>>> before? Any insights would be great.
>>>>
>>>> Regards,
>>>> -David
>>>>
>>>
>>
>
--
------------------------------------------------------------------------
David Lawrence Ph.D.
Staff Scientist Office: (757)269-5567 [[[ [ [ [
Jefferson Lab Pager: (757)584-5567 [ [ [ [ [ [
http://www.jlab.org/~davidl davidl@jlab.org [[[ [[ [[ [[[
------------------------------------------------------------------------