Greetings,

I am learning jquery and have found it a great time saver so far.  I
am building a thesaurus application but am having trouble with Xpath
expressions used to parse an XML document returned by an ajax query.
The XML that gets returned is in this format (truncated):

<response>
                <hierarchy direction="narrower" max-levels="2">
                        <node>
                                <term>_top_</term>
                                <node>
                                        <term>Agriculture</term>
                                        <node><term>Agricultural 
diversification</term></node>
                                        <node><term>Agricultural 
economics</term></node>
                                        <node><term>Agricultural 
education</term></node>
                                </node>
                                <node><term>Boundaries</term></node>
                                <node><term>Buildings</term></node>
                        </node>
                </hierarchy>
</response>

A few questions:
1) Is there a direct way to get the value which is "_top_" above?  I
currently have this:
          var BaseTerm;
          $(xml).find('term:first').each(function(){
                BaseTerm = $(this).text();
          });
It works, but I don't see why I should have to use 'each'.  Can I
address this node without iterating through a set of one element?

2) I would like to loop through a set of just the terms at the second
node deep level (i.e. "Agriculture","Boundaries" and "Buildings").  I
have tried a variety of ways with no luck.  Here is an example of a
failed attempt:

           $(xml).find(//term).each(function(){
                        var NT= $(this).text();            // get the narrower 
terms
          });

3) I would like to test for the presence of subterms.  Based on the
sample response, I would only want to get 'Agriculture'.  Ideally this
would next in the sample loop above such as:

           $(xml).find(//term).each(function(){
                        var NT= $(this).text();
                        var HasNarrowerTerms = NT.children();
          });

Any assistance would be greatly appreciated in helping me parse /
traverse this response.

Cheers,

Andrew Koebrick

Reply via email to