使用目标c,XML解析不起作用

时间:2013-01-26 05:57:36

标签: ios web-services parsing tbxml

我有一个ASMX网络服务。它以XML格式返回数据。返回的数据很大。订单30-40000条记录。我正在尝试使用

TBXML.
<ArrayOfNAllAddresses xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">

 &ltNAllAddresses&gt
   &ltAllAddID&gt60386 &lt/AllAddID&gt
    &ltAllAddressLine&gtXYZA Company </AllAddressLine&gt
    &ltAllAddressCity>&gtChicago  </AllAddressCity&gt
    &ltAllAddressState&gtIL </AllAddressState&gt
    &ltAllAddressZip&gt5555</AllAddressZip&gt
    &ltAllCustID &gt41257> </AllCustID&gt
  &lt/NAllAddresses&gt
 &ltNAllAddresses&gt
....

  </NAllAddresses>
 </ArrayOfNAllAddresses>

     TBXMLElement *elem_NAddresses = [TBXML childElementNamed:@"ArrayOfNAllAddresses" parentElement:root];
        NSLog(@"the value is at 873 %@",elem_NAddresses);
        while (elem_NAddresses != nil) {
    //It should enter here. But it won't
    }

所以我试了一下。但它不会进入while循环。我将ArrayOfNAlllAddresses中的值更改为使用NALLAddresses。但它也无济于事。有人能告诉我如何解析它吗?谢谢。如果您需要更多信息,请告诉我们。

1 个答案:

答案 0 :(得分:0)

您是否随时将XML文件传递给TBXML?您需要先执行此操作,否则TBXML不知道您正在谈论的XML。因此,将XML保存在Xcode中的.xml文件中,或将其转换为NSString并将其传递给TBXML,如下所示:

TBXML *tbxml = [TBXML tbxmlWithXMLFile:@"yourFile.xml"];
//or
TBXML *tbxml = [TBXML tbxmlWithXMLString:yourString]

然后你可以抓住根元素并进行while循环:

TBXMLElement *root = tbxml.rootXMLElement;

另外,请确保#include TBXML.h头文件。