[OBJ-C] [TouchXML] Maps API xPath geeft nooit resultaat

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 22:44
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).

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 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Gorion3
  • Registratie: Februari 2005
  • Laatst online: 24-08 08:28

Gorion3

ABC++

Persoonlijk heb ik geen ervaring met xpath, maar zelf gebruik ik TinyXML daarvoor. Ook weiger ik gebruik te maken van obj-c, dus doe ik alles in C++ (En wat wrappers voor de functie's die persee in OBJ-C moeten..). Maarja beetje non-antwoord eigenlijk, maar misschien kan je eens kijken naar TinyXML?

Awesomenauts! Swords & Soldiers


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 22:44
Dat was inderdaad een c++ library, maar hoe kan ik dat dan koppelen aan ob-c? (Het moet namelijk op de iPhone werken).

Alles wat ik tot nu toe heb in ob-c herschrijven in c++ is geen optie ;)

-------

Mocht iemand het antwoord weten zonder gebruik te maken van tinyXml, maar gewoon met TouchXML / KissXML, dan mag die uiteraard ook nog antwoorden :)

[ Voor 53% gewijzigd door ZpAz op 08-08-2009 21:41 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox