【问题标题】:IPhone SDK : Help me about xml parsing with TBXMLiPhone SDK : 帮助我使用 TBXML 解析 xml
【发布时间】:2011-04-03 19:59:16
【问题描述】:

我与网络服务建立了连接,收到的数据不等于“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];”上崩溃了 我对解决这个问题一无所知..

【问题讨论】:

    标签: iphone xml-parsing


    【解决方案1】:

    在 root 上放置一个断点并在调试器窗口中展开 root 看看你是否有 childElement soap:Body 然后展开 childElement soap:Body 看看你是否有 childElement GroupResponse..从你发布的 XML 我试过它工作正常,直到 Groupid , Groupid, GroupName,Members是兄弟姐妹,MemberClass是Member的firstChild,MemberId是memberclass的firstChild,MemberName,MemberPhone.etc是MemberId的nextSiblings。

    【讨论】:

      【解决方案2】:

      您是否尝试过设置断点并单步执行代码以查看每个调用实际返回的内容?此外,它崩溃的错误也会有所帮助。我的第一个猜测是[TBXML childElementNamed:@"soap:Body" parentElement:root] 返回零。然后在下一行中,您正在寻找 TBXML 代码可能不喜欢的 nil“项”的子项。

      【讨论】:

        猜你喜欢
        • 2011-02-26
        • 1970-01-01
        • 2011-10-29
        • 1970-01-01
        • 1970-01-01
        • 2012-02-06
        • 2011-06-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多