iPhone SDK:帮助我有关使用TBXML进行XML解析 [英] IPhone SDK : Help me about xml parsing with TBXML

查看:47
本文介绍了iPhone SDK:帮助我有关使用TBXML进行XML解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我与Web服务有连接,接收到的数据不等于"nil",并且响应SOAP UI显示如下:

<soap:Envelope
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>
-<soap:Body>
 -<GroupResponse xmlns="http://tempuri.org/">
  -<GroupResult>
   -<GroupClass>
     -<Groupid>48937</Groupid>
     -<GroupName>test</GroupName>
       -<Members>
        -<MemberClass>
            -<memberID>4699860</memberID>
            -<memberNAME>nazan</memberNAME>
            -<memberLASTNAME>torun</memberLASTNAME>
            -<memberPHONE>292930412452</memberPHONE>
            -<memberBIRTH>02.04.1980</memberBIRTH>
            -<memberMARRIAGE>01.11.2009</memberMARRIAGE>
         </MemberClass>
        -<MemberClass>
              ...has lots of member

我如何使用TBXML来获得这些信息?这是我的代码,但是会崩溃..

NSArray *propertyArray = [NSArray arrayWithObjects:@"Members",@"memberID",@"memberNAME",@"memberLASTNAME",@"memberPhone",@"memberBIRTH",@"memberMARRIAGE",nil];

TBXML * tbxml = [[TBXML alloc] initWithXMLData:GrupRecievedData];
        TBXMLElement *root = tbxml.rootXMLElement;
        if (root) {
            NSLog(@"root: %@",[TBXML elementName:root]);

            TBXMLElement *item = [TBXML childElementNamed:@"soap:Body" parentElement:root];
            TBXMLElement *item1 = [TBXML childElementNamed:@"GroupResponse" parentElement:item];
            TBXMLElement *item2 = [TBXML childElementNamed:@"GroupResult" parentElement:item1];
            TBXMLElement *item3 = [TBXML childElementNamed:@"Groupid" parentElement:item2];
            TBXMLElement *item4 = [TBXML childElementNamed:@"GroupName" parentElement:item3];
            TBXMLElement *item5 = [TBXML childElementNamed:@"Members" parentElement:item4];

我试图解析数组中的对象,但是我在" TBXMLElement * item1 = [TBXML childElementNamed:@"GroupResponse" parentElement:item]; "上崩溃我对解决这个问题一无所知.

i tried to parse with objects in array, but i crashes on "TBXMLElement *item1 = [TBXML childElementNamed:@"GroupResponse" parentElement:item];" i dont have any idea anything about solving this problem..

推荐答案

在root上放置一个断点,然后在调试器窗口中展开root,看看是否有childElement soap:Body,然后再展开childElement soap:Body,看看是否有childElement GroupResponse.从您发布的XML中,我尝试了一下,直到Groupid,Groupid,GroupName,Members是兄弟姐妹,MemberClass是Memberclass的firstChild,MemberId是memberclass的firstChild,MemberName,MemberPhone.etc是MemberId的nextSiblings为止,它都可以正常工作.

Place a breakpoint on root and in debugger window expand root see if you have childElement soap:Body then expand childElement soap:Body see if you have childElement GroupResponse..From the XML you posted I tried it out it works fine until Groupid , Groupid, GroupName,Members are siblings, MemberClass is firstChild of Member, MemberId is firstChild of memberclass, MemberName, MemberPhone.etc are nextSiblings of MemberId.

这篇关于iPhone SDK:帮助我有关使用TBXML进行XML解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆