Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>This is a simple example how to retrieve some data. This example is very simple and not use XPath expression. I suggest you first understand how it works and then use XPath expression. In my opinion it is not useful to use XPath expression if you cannot understand how the parser works.</p> <pre><code>NSString* path = [[NSBundle mainBundle] pathForResource:@"test2" ofType:@"xml"]; NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:path]; NSError *error; GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&amp;error]; //NSLog(@"%@", doc.rootElement); // print the whole xml NSArray *orderDataArray = [doc.rootElement elementsForName:@"OrderData"]; for (GDataXMLElement *orderDataElement in orderDataArray) { if([orderDataElement childCount] &gt; 0) { NSString *attributeForOrderDataElement = [(GDataXMLElement *) [orderDataElement attributeForName:@"HASH"] stringValue]; NSLog(@"attributeForOrderDataElement has value %@", attributeForOrderDataElement); GDataXMLElement* idElement = (GDataXMLElement*)[[orderDataElement elementsForName:@"id"] objectAtIndex:0]; NSLog(@"id has value %@", idElement.stringValue); GDataXMLElement* orderDetailElement = (GDataXMLElement*)[[orderDataElement elementsForName:@"orderDetail"] objectAtIndex:0]; GDataXMLElement* listElement = (GDataXMLElement*)[[orderDetailElement elementsForName:@"list"] objectAtIndex:0]; NSArray* orderDetailDataArray = [listElement elementsForName:@"OrderDetailData"]; int count = 0; for (GDataXMLElement *orderDetailDataElement in orderDetailDataArray) { NSString *attributeForOrderDetailDataElement = [(GDataXMLElement *) [orderDetailDataElement attributeForName:@"HASH"] stringValue]; NSLog(@"attributeForOrderDetailDataElement has value %@", attributeForOrderDetailDataElement); count++; } NSLog(@"%d", count); } } [doc release]; [xmlData release]; </code></pre> <p>This is the output console:</p> <pre><code>attributeForOrderDataElement has value 208524692 &lt;-- HASH value id has value 97 &lt;-- id value attributeForOrderDetailDataElement has value 516790072 &lt;-- HASH value attributeForOrderDetailDataElement has value 11226247 attributeForOrderDetailDataElement has value 11226247 3 &lt;-- the count </code></pre> <p>Hope it helps.</p> <p><strong>Edit</strong></p> <p>test2.xml contains your file but you could pass it as a string. You can also pass as parameters as string like the following:</p> <pre><code>NSString* xmlString = @"&lt;list&gt;" "&lt;OrderData HASH=\"1408108039\"&gt;&lt;/OrderData&gt;" "&lt;OrderData HASH=\"208524692\"&gt;" "&lt;id&gt;97&lt;/id&gt;" "&lt;customer&gt;" "&lt;CustomerData HASH=\"2128670187\"&gt;&lt;/CustomerData&gt;" "&lt;/customer&gt;" "&lt;billingAddress&gt;&lt;/billingAddress&gt;" "&lt;deliveryAddress&gt;&lt;/deliveryAddress&gt;" "&lt;orderDetail&gt;" "&lt;list&gt;" "&lt;OrderDetailData HASH=\"516790072\"&gt;&lt;/OrderDetailData&gt;" "&lt;OrderDetailData HASH=\"11226247\"&gt;&lt;/OrderDetailData&gt;" "&lt;OrderDetailData HASH=\"11226247\"&gt;&lt;/OrderDetailData&gt;" "&lt;/list&gt;" "&lt;/orderDetail&gt;" "&lt;log/&gt;" "&lt;/OrderData&gt;" "&lt;OrderData HASH=\"1502226778\"&gt;&lt;/OrderData&gt;" "&lt;/list&gt;"; GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithXMLString:xmlString options:0 error:&amp;error]; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload