0

我有一个 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循环。我将 ArrayOfNAllllAddresses 的值更改为使用 NALLAddresses。但它也不起作用。有人可以告诉我如何解析它吗?谢谢。如果您需要更多信息,请告诉我。

4

1 回答 1

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;

另外,请确保您#includeTBXML.h头文件。

于 2013-05-17T08:31:05.633 回答