Re: [xml] general help with using XPath with libxml2 (fwd)



Sri,

        thank you for the help.  i did learn a lot from your example.  i'm
not sure i am communicating what i want to do clearly though.

i guess what im trying to do is an XPath query from an XPath result.

an example would be like

XPathObjectPtr array1Ref =
xmlXPathEvalExpression("//data/array1",xpathctx);

XPathObjectPtr array2Ref = xmlXPathEvalExpression("MyStruct/data1",
array1Ref->nodesetval->nodeTab[0]);

i know that wont compile.  but i'm looking to do something similar. is
this possible?

thanks

Pete

On Tue, 14 Nov 2006, Tallapragada, Sridevi wrote:

Hi

Check if this attachment helps you

Regards
Sri



-----Original Message-----
From: Peter Wilkes [mailto:pwilkes cowpie acm vt edu]
Sent: Tuesday, November 14, 2006 2:20 AM
To: xml gnome org
Subject: [xml] general help with using XPath with libxml2 (fwd)

hello,

      i've been asked to convert some XML parsing code that relys on
XPath from the Microsoft XML objects to another platform independent
toolkit.  libxml seems very light weight (which is good for us) and easy
to use.  i have some questions though as i am a newbie to XML/XPath and
libxml2.

1. i have an xmlXPathObjectPtr which points to an array of objects each
containing data X, Y, and Z. i would like to look up the field by name.
ex. Lookup(MyxmlXPathObjectPtr, "field1"); currently i have this solved
by doing a short while loop.

xmlNodePtr nodePtr = nodeSet->nodeTab[pos]; if(nodePtr == NULL) {
      return false;
}

bool found = false;
xmlNodePtr runner = nodePtr->children;
while( (runner != NULL) && (!found) )
{
      if(strcmp(element, (char *)runner->name) == 0)
      {
              strncpy(val, (char *)runner->children->content, valLen);
              found = true;
      }
      runner = runner->next;
}

frankly i figured that this was the wrong way of doing this. and i'm
looking for a better way to accomplish the same goal.  i cant seem to
find the correct function inside libxml2 or dont fully understand the
naming conventions. (again i am a noob)  any help anyone can give me is
greatly appreciated.

2. i have a xmlXPathObjectPtr which points to an array of objects.  one
of those object being a array itself.  (array contained inside an array)
and i cant seem to figure out how to get the subarray from my array. an
example would be like

<data>
      <array1>
              <array2>
                      <MyStruct>
                              <data1>data1</data1>
                              <data2>data2</data2>
                      </MyStruct>
                      <MyStruct>
                              <data1>data11</data1>
                              <data2>data22</data2>
                      </MyStruct>
              </array2>
              <array2>
                      <MyStruct>
                              <data1>data111</data1>
                              <data2>data222</data2>
                      </MyStruct>
                      <MyStruct>
                              <data1>data1111</data1>
                              <data2>data2222</data2>
                      </MyStruct>
              </array2>
      </array1>
</data>

again if anyone could provide me with any hints i would be very
appreciated.


thanks

Pete
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/ xml gnome org
http://mail.gnome.org/mailman/listinfo/xml




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