この XML コードを IOS で解析しようとしています。
<?xml version="1.0" encoding="ISO-8859-1"?>
<ofertas>
<oferta>
<id>138</id>
<connector/>
<codigo>PARMAD</codigo>
<titulo><![CDATA[Madrid, BordÈus e Paris]]></titulo>
<descricao><![CDATA[ 7 dias c/ Pequeno AlmoÁo - Apenas Circuito Terrestre - Alojamento e Pequeno-AlmoÁo ; 7 dias c/ Pequeno AlmoÁo - SaÌda com voo de Lisboa - Alojamento e Pequeno-AlmoÁo ; 7 dias c/ Pequeno AlmoÁo - SaÌda com voo do Porto - Alojamento e Pequeno-AlmoÁo ; 7 dias c/ Pequeno AlmoÁo - SaÌda com voo de Faro - Alojamento e Pequeno-AlmoÁo]]></descricao>
<datas><![CDATA[Consultar programa]]></datas>
<data1>2012-07-31</data1>
<data2>2013-03-23</data2>
<categoria>Europa</categoria>
<subcategoria>Circuitos Europa</subcategoria>
<zona>Turistica</zona>
<tipo>Circuitos Europa</tipo>
<valor>575</valor>
<dias>6</dias>
<imagem>http://www.optitravel.net/optitravel/www/media/custom/cli_202/media/PKT_138_1343738358.jpg</imagem>
<link/>
</oferta>
<oferta>
<id>140</id>
<connector/>
<codigo>PARPRG</codigo>
<titulo><![CDATA[Paris, Frankfurt e Praga]]></titulo>
<descricao><![CDATA[ 7 dias c/ Pequeno AlmoÁo - Apenas Circuito Terrestre - Alojamento e Pequeno-AlmoÁo ; 7 dias c/ Pequeno AlmoÁo - SaÌda com voo de Lisboa - Alojamento e Pequeno-AlmoÁo ; 7 dias c/ Pequeno AlmoÁo - SaÌda com voo do Porto - Alojamento e Pequeno-AlmoÁo ; 7 dias c/ Pequeno AlmoÁo - SaÌda com voo de Faro - Alojamento e Pequeno-AlmoÁo]]></descricao>
<datas><![CDATA[01/Nov, 08/Nov, 15/Nov, 29/Nov, 13/Dez, 27/Dez, 10/Jan/2013, 24/Jan/2013, 07/Fev/2013, 21/Fev/2013, 07/Mar/2013, 21/Mar/2013]]></datas>
<data1>2012-08-01</data1>
<data2>2013-03-21</data2>
大きなファイルを解析するのに最適なオプションかどうかはわかりませんが、SMXMLDocument
この特定の XML を解析するために使用しています。私が抱えている問題は、この XML をデコードできないことです。以下は、私が使用している XML パーサーの作成者によって提供されたコード サンプルです。
//REPLACED WITH MY XML DOC
NSString *sampleXML = [[NSBundle mainBundle] pathForResource:@"global" ofType:@"xml"];
NSData *data = [NSData dataWithContentsOfFile:sampleXML];
// create a new SMXMLDocument with the contents of sample.xml
NSError *error;
SMXMLDocument *document = [SMXMLDocument documentWithData:data error:&error];
// check for errors
if (error) {
NSLog(@"Error while parsing the document: %@", error);
return;
}
// demonstrate -description of document/element classes
NSLog(@"Document:\n %@", document);
// Pull out the <books> node
SMXMLElement *books = [document.root childNamed:@"????"];
// Look through <books> children of type <book>
for (SMXMLElement *book in [books childrenNamed:@"????"]) {
// demonstrate common cases of extracting XML data
NSString *isbn = [book attributeNamed:@"id"]; // XML attribute
NSString *title = [book valueWithPath:@"titulo"]; // child node value
// show off some KVC magic
NSArray *authors = [[book childNamed:@"authors"].children valueForKey:@"value"];
NSLog(@"Found a book!\n ISBN: %@ \n Title: %@ \n Price: %f \n", isbn, title, price);
}
このドキュメントを解析するためのより優れた XML パーサーがある場合は、アドバイスしてください。