I know there are lot of questions regarding TBXML out there and I have tried few of the solutions but nothing is working for me. I am new to this stuff.
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfNewsFeedService xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<NewsFeedService>
<LngNewsItemID>1</LngNewsItemID>
<Contents>test</Contents>
<LngUserID>1</LngUserID>
<DteCreated>1/04/2014 12:00:00 a.m.</DteCreated>
<NewsReply>
<NewsFeedReplyService>
<lngNewsItemReplyID />
<LngNewsItemID>1</LngNewsItemID>
<ReplyContent>reply</ReplyContent>
<LngUserID>1</LngUserID>
<DteCreated>1/04/2014 12:00:00 a.m.</DteCreated>
</NewsFeedReplyService>
<NewsFeedReplyService>
<lngNewsItemReplyID />
<LngNewsItemID>1</LngNewsItemID>
<ReplyContent>reply2</ReplyContent>
<LngUserID>1</LngUserID>
<DteCreated>1/04/2014 12:00:00 a.m.</DteCreated>
</NewsFeedReplyService>
</NewsReply>
</NewsFeedService>
</ArrayOfNewsFeedService>
I can read the 'Contents' value from the xml just fine but I am running into problems when I try to read the 'NewsReply' and all the inner xml. Not really sure how to solve it. Any help would be greatly appreciated. I have been trying to solve this for over 2 weeks now.
Thanks in advance
EDIT - Apologies here is the code of what I have tried.
NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
NSLog(@"%@", theXML);
TBXML * tbxml = [TBXML newTBXMLWithXMLString:theXML];
NSLog(@"%@", [TBXML elementName:tbxml.rootXMLElement]);
if (tbxml.rootXMLElement)
{
NSString *content = [self traverseElement:tbxml.rootXMLElement: @"Contents"];
UITextViewPost.text = content;
NSString *test = [self traverseElement:tbxml.rootXMLElement: @"NewsReply"];
NSLog(@"ReplyContent - %@", test);
TBXMLElement * elem_items = [TBXML childElementNamed:@"NewsFeedReplyService" parentElement:tbxml.rootXMLElement];
NSLog(@"elem_items - %@", elem_items);
NSMutableArray * array=[[NSMutableArray alloc]init];
while (elem_items !=nil)
{
NSMutableDictionary * dictionary=[[NSMutableDictionary alloc]init];
NSString * str_ParseData=[[NSString alloc]init];
TBXMLElement * elem_item = [TBXML childElementNamed:@"NewsFeedReplyService" parentElement:elem_items];
TBXMLElement * elem_itemid = [TBXML childElementNamed:@"LngUserID" parentElement:elem_item];
str_ParseData = [TBXML textForElement:elem_itemid];
[dictionary setObject:str_ParseData forKey:@"LngUserID"];
TBXMLElement * elem_itemname = [TBXML childElementNamed:@"ReplyContent" parentElement:elem_item];
str_ParseData = [TBXML textForElement:elem_itemname];
[dictionary setObject:str_ParseData forKey:@"ReplyContent"];
[array addObject:dictionary];
elem_items = [TBXML nextSiblingNamed:@"NewsFeedReplyService" searchFromElement:elem_items]; /// end node
NSLog(@"printing arrays - %@", str_ParseData);
}
}
I have fixed it. I used the following code if anyone wants to fix their issue.
After that just call the function from with in your code to populate an array.
Also make sure you change the fields name from the one I have posted above.
Thanks