我想在IOS解析這個XML代碼:奇怪的XML文檔解析
<?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
IM來解析這個特定的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解析器。
嗨,你的問題沒有被正確地問。你應該添加你嘗試過的代碼,並且給出更多關於什麼工作和什麼不工作的細節。你說「我不能解碼這個XML」,爲什麼?您應該查看與示例代碼關聯的xml文件,並嘗試瞭解它是如何工作的。 – rdurand
我已經嘗試了幾種方法來做這個代碼,但我不能理解XML文檔:( –
你想要什麼樣的結果 – Purva