我有一个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/">
<NAllAddresses>
<AllAddID>60386 </AllAddID>
<AllAddressLine>XYZA Company </AllAddressLine>
<AllAddressCity>>Chicago </AllAddressCity>
<AllAddressState>IL </AllAddressState>
<AllAddressZip>5555</AllAddressZip>
<AllCustID >41257> </AllCustID>
</NAllAddresses>
<NAllAddresses>
....
</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。但它也无济于事。有人能告诉我如何解析它吗?谢谢。如果您需要更多信息,请告诉我们。
答案 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
头文件。