Я недавно сделал нечто похожее, чтобы вы могли быстро адаптироваться, мой XML был:
<?xml version="1.0" encoding="ISO-8859-1"?>
<agencies>
<agency>
<name>Agency 1 name</name>
<addressFirstLine>Immeuble XYZ<addressFirstLine>
<addressSecondLine>rue de la republique</addressSecondLine>
<addressThirdLine>69007 Lyon</addressThirdLine>
<telNumber>01 23 45 67 89</telNumber>
</agency>
<agency>
<name>Agency 2 name</name>
<addressFirstLine>Immeuble ABC<addressFirstLine>
<addressSecondLine>rue de la republique</addressSecondLine>
<addressThirdLine>69007 Lyon</addressThirdLine>
<telNumber>01 23 45 67 89</telNumber>
</agency>
</agencies>
Код, который я использовал для анализа этого (получить результат в моем NSArray
, называемом agencies
):
TBXML *tbxml = [[TBXML tbxmlWithXMLFile:yourXmlFile retain];
TBXMLElement *rootXMLElement = tbxml.rootXMLElement;
if (rootXMLElement) {
self.agencies = [self traverseElement:rootXMLElement];
[delegate managerDidReceiveData];
}
// release resources
[tbxml release];
И моя функция для преобразования в массив:
- (NSArray *)traverseElement:(TBXMLElement *)element {
NSMutableArray *tmpAgencies = [[NSMutableArray alloc] init];
TBXMLElement *agenciesXmlElement = element->firstChild;
TBXMLElement *agencyXmlElement;
do {
// if the element has child elements, process them
if ((agencyXmlElement = agenciesXmlElement->firstChild)) {
NSMutableDictionary *tmpAgency = [[NSMutableDictionary alloc] init];
do {
[tmpAgency setValue:[TBXML textForElement:agencyXmlElement] forKey:[TBXML elementName:agencyXmlElement]];
// Obtain next sibling element
} while ((agencyXmlElement = agencyXmlElement->nextSibling));
[tmpAgencies addObject:tmpAgency];
[tmpAgency release];
}
// Obtain next sibling element
} while ((agenciesXmlElement = agenciesXmlElement->nextSibling));
return tmpAgencies;
}
Эта функция вернет вам массив, который содержит NSDictionary
объектов, представляющих ваш Records
.NSDictionary прост в использовании, чтобы получить свойство, которое вы используете [yourDictionary objectForKey:yourXmlNode]
.Документ здесь: NSDictionary .