I Know my xml looking very much odd but nothing to do.Now my problem is how can i parse this xml attribute and its value using TBXML?? Please anybody help me.Thanks in Advance.
−<order>
<id>100</id>
<order_date>October 13th, 2011 at 2:43 PM</order_date>
−<customer>
<id>45</id>
<name>John Kramer</name>
−<address>
−<billing>167 Yarra Street, South Yarra, Melbourne, Australia</billing>
−<shipping>35 Victoria, Street, North Yarra, Melbourne, Australia</shipping>
<email> johnkramer@hotmail.com</email>
<phone> +6546325478 </phone>
</address>
</customer>
−<products>
−<product>
<id>12</id>
<name>Asus F5RL</name>
−<description>Color: Blue. Size: Square.</description>
<qty>2</qty>
<unit_price>50 AUD</unit_price>
<total_price>100 AUD</total_price>
</product>
−<product>
<id>12</id>
<name>Acer F4</name>
<description>Color: Red</description>
<qty>3</qty>
<unit_price>40 AUD</unit_price>
<total_price>120 AUD</total_price>
</product>
</products>
-<price_details>
<subtotal>220 AUD</subtotal>
<discount>20 AUD</discount>
<tax> 10 AUD </tax>
<shipment> 5 AUD </shipment>
<grand_total> 235 AUD </grand_total>
</price_details>
<order_status>Pending </order_status>
</order>
still now i have done this but it is crashing.
- (void)traverseElement:(TBXMLElement *)element {
do {
NSLog(@"%@",[TBXML elementName:element]);
if (element->firstChild)
[self traverseElement:element->firstChild];
TBXMLAttribute * attribute = element->firstAttribute;
// if attribute is valid
while (attribute) {
// Display name and value of attribute to the log window
NSLog(@"%@->%@ = %@",
[TBXML elementName:element],
[TBXML attributeName:attribute],
[TBXML attributeValue:attribute]);
// Obtain the next attribute
attribute = attribute->next;
}
if ([[TBXML elementName:element] isEqualToString:@"order"]) {
NSLog(@"xml element checking");
TBXMLElement *order_id = [TBXML childElementNamed:@"id" parentElement:element];
TBXMLElement *order_date = [TBXML childElementNamed:@"order_date" parentElement:element];
TBXMLElement *customer = [TBXML childElementNamed:@"customer" parentElement:element];
TBXMLElement *customer_id = [TBXML childElementNamed:@"id" parentElement:customer];
TBXMLElement *customer_name = [TBXML childElementNamed:@"name" parentElement:customer];
[records addObject:[NSArray arrayWithObjects:
[TBXML textForElement:customer_id],
[TBXML textForElement:customer_name],
[TBXML textForElement:order_id],
[TBXML textForElement:order_date],nil ] ];
NSLog(@"customer id: %@",customer_id);
NSLog(@"customer name: %@",customer_name);
}
I have solve this problem may be it will helpful for someone...
Try with JSon parser. For your better understanding see this link. and this link.Download JSon parser from this link.
check with this thread.