J'utilise TouchXml en raison des limitations données de NSXML sur l'iPhone réel. Quoi qu'il en soit, je viens juste de commencer avec Objective-C, je viens d'un milieu C#, et se sentait comme apprendre quelque chose new..anyhow .. voici mon fichier xml ...Obtenir la valeur d'un élément dans Cocoa en utilisant TouchXML
<?xml version="1.0" encoding="utf-8"?>
<FundInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/webservices">
<FundsReleaseDate>2009-02-11T00:00:00</FundsReleaseDate>
<FundValue>7800</FundValue>
<FundShares>1000</FundShares>
</FundInfo>
Je suis en train pour obtenir 7800, c'est-à-dire FundValue. me diriger quelqu'un peut dans le bon sens, je me sers du TouchXml CXMLDocument et myParser est de type CXMLDocument, j'ai essayé
NSArray *nodes = [myParser nodesForXPath:@"//FundInfo" error:&err];
nœuds Fondamentalement évalue à zéro
if ([nodes count] > 0) {
amount = [nodes objectAtIndex:1];
}
MISE À JOUR 1: Je l'ai abandonné en utilisant XPath, et l'ai remplacé par NSURLRequest, alors maintenant j'ai le XML entier dans une chaîne, mais mon introduction grossière à l'objectif-C continue ... Je viens de réaliser à quel point je suis devenu corrompu .NET BCL où des choses comme Regex sont si facilement disponibles.
UPDATE2: J'ai compris comment utiliser RegexKitLite pour regex.
Donc la question est maintenant, comment puis-je obtenir le "7800" à partir de FundValue qui est maintenant une grande chaîne. J'ai confirmé que je l'ai dans mon NSString en l'écrivant en utilisant NSLog.
merci pour la réponse, je reçois un accident avec le message d'exception suivant:.. [CXMLElement isEqualToString :]: sélecteur non reconnu envoyé à l'instance – kd7
Je parie que tout cela est lié au fait que le service Web que j'essaie t o consommer est basé sur .NET, mais malheureusement je n'ai aucun contrôle sur, j'ai parcouru les pages et il semble que l'attribut xmlns est la cause de tous les problèmes. – kd7
Je n'utilise pas TouchXML dans les projets, bien que j'utilise libxml2 (qui est ce à quoi TouchXML est destiné), donc la bibliothèque sous-jacente fonctionne. Cela ne me choquerait pas si ce n'est pas un chemin de code bien testé, vous devrez peut-être corriger quelque chose dans TouchXML. –