Aloha,
Ik heb een klasse gevonden waarmee het mogelijk is om xPath toch te gebruiken in de iPhone SDK. So far So good, bij mijn eerste xml bestand wat ik wil parsen, levert dit geen problemen op, ik krijg netjes de items terug (voorbeeld).
In dit geval krijg ik netjes alle logs bij xpath VALUE krijg ik het te verwachten resultaat, alle items in een array.
Maar, nu ik enkel de url verander, en de xpath naar de google maps api, dan krijg ik ineens geen xpath resultaat meer? Errors zijn leeg, en de contents (STRING) is gewoon gevuld met het xml bestand.
Voorbeeld: (exact zelfde als bovenstaande, enkel xpath veranderd en url. (het ligt hem niet aan de url of xpath, aangezien de url gewoon geladen wordt, en als ik het root element oid selecteer van het document werkt het ook niet.
Iemand enig idee waarom het niet werkt?
Hier trouwens het linkje van de XML file van google maps:
(Directe link werkt blijkbaar niet)
Ik heb gegoogled, maar ik kom er niet uit, sommigen raden KissXML aan, maar hier kan ik geen download locatie van vinden (@google code is het download tabje leeg).
TouchXML is gebasseerd op het princiepe van NSXMLDocument maar de documentatie hiervan geeft geen oplossing, ook zag ik bij de xpath query een options waarde, daar kunnen de volgende waardes (naast 0) ingevuld worden.
- CXMLDocumentTidyXML
- CXMLDocumentTidyHTML
Maar geen van deze beide waardes levert een resultaat op. De xpath geeft altijd een lege array terug.
Ik heb een klasse gevonden waarmee het mogelijk is om xPath toch te gebruiken in de iPhone SDK. So far So good, bij mijn eerste xml bestand wat ik wil parsen, levert dit geen problemen op, ik krijg netjes de items terug (voorbeeld).
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| //Fetch XML NSURL *url = [NSURL URLWithString:@"http://mijndomein.nl/rss.xml"]; NSLog(@"url: %@", url); NSError *theError = NULL; self.xml = [[CXMLDocument alloc] initWithContentsOfURL:url options:0 error:&theError]; NSLog(@"STRING %@",[self.xml XMLString]); NSArray *country = [[NSArray alloc] init]; NSError *secondeError = NULL; country = [self.xml nodesForXPath:@"//item" error:&secondeError]; NSLog(@"xpath VALUE: %@", country); NSLog(@"ERROR %@", theError); NSLog(@"SECONDERROR %@", secondeError); |
In dit geval krijg ik netjes alle logs bij xpath VALUE krijg ik het te verwachten resultaat, alle items in een array.
Maar, nu ik enkel de url verander, en de xpath naar de google maps api, dan krijg ik ineens geen xpath resultaat meer? Errors zijn leeg, en de contents (STRING) is gewoon gevuld met het xml bestand.
Voorbeeld: (exact zelfde als bovenstaande, enkel xpath veranderd en url. (het ligt hem niet aan de url of xpath, aangezien de url gewoon geladen wordt, en als ik het root element oid selecteer van het document werkt het ook niet.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| //Fetch XML NSURL *url = [NSURL URLWithString:@"http://maps.google.com/maps/geo?q=37.331689,-122.030731&output=xml&oe=utf8&sensor=true&key=ABQIAAAAq8Wv0xoblnxkXXSc7XAL5BQKRNSeTAwZZ8l8U1sL-xTyYWI67GwUyWGbAwwAfd0FVGGfOg"]; NSLog(@"url: %@", url); NSError *theError = NULL; self.xml = [[CXMLDocument alloc] initWithContentsOfURL:url options:0 error:&theError]; NSLog(@"STRING %@",[self.xml XMLString]); NSArray *country = [[NSArray alloc] init]; NSError *secondeError = NULL; country = [self.xml nodesForXPath:@"//CountryNameCode" error:&secondeError]; NSLog(@"COUNTRYCODE: %@", country); NSLog(@"ERROR %@", theError); NSLog(@"SECONDERROR %@", secondeError); |
Iemand enig idee waarom het niet werkt?
Hier trouwens het linkje van de XML file van google maps:
code:
1
| http://maps.google.com/maps/geo?q=37.331689,-122.030731&output=xml&oe=utf8&sensor=true&key=ABQIAAAAq8Wv0xoblnxkXXSc7XAL5BQKRNSeTAwZZ8l8U1sL-xTyYWI67GwUyWGbAwwAfd0FVGGfOg |
(Directe link werkt blijkbaar niet)
Ik heb gegoogled, maar ik kom er niet uit, sommigen raden KissXML aan, maar hier kan ik geen download locatie van vinden (@google code is het download tabje leeg).
TouchXML is gebasseerd op het princiepe van NSXMLDocument maar de documentatie hiervan geeft geen oplossing, ook zag ik bij de xpath query een options waarde, daar kunnen de volgende waardes (naast 0) ingevuld worden.
- CXMLDocumentTidyXML
- CXMLDocumentTidyHTML
Maar geen van deze beide waardes levert een resultaat op. De xpath geeft altijd een lege array terug.
[ Voor 7% gewijzigd door ZpAz op 06-08-2009 12:50 ]