L'analyse de xml dans NSXMLParser
J'ai lu de nombreux exemples de la façon d'obtenir le texte de fichiers xml, mais n'ont tout simplement pas comment faire. Voici un exemple de fichier xml:
<?xml version="1.0" encoding="UTF-8"?>
<questions>
<set>
<question>Question</question>
<answer>Answer</answer>
</set>
</questions>
À l'aide de -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI
, ce qui est la façon la plus simple pour obtenir les valeurs Question
et Answer
? J'ai déjà mon analyseur délégué accroché et tout ce que bla.
Vous devez vous connecter pour publier un commentaire.
Pour la mise en œuvre de NSXMLParser vous avez besoin pour mettre en œuvre délégué méthode d'elle.
Tout d'abord lancer NSXMLParser de cette manière.
Ci-dessus délégué méthode est envoyé par un analyseur objet de son délégué lorsqu'il rencontre une fin de l'élément. Dans cette méthode
didEndElement
, vous obtiendrez la valeur dequestion
.foundCharacters
🙂if (currentElementValue == nil)
Vous avez besoin pour mettre en œuvre la méthode
Une fois que vous voyez les éléments dont l' (intérieure)de texte que vous souhaitez saisir, définir un indicateur dans votre programme, et de garder une chaîne de caractères avec les choses que
foundCharacters
trouve entre les balises. Une fois que vous frappez ladidEndElement
méthode, vous pouvez faire ce que vous voulez avec la chaîne et de réinitialiser l'indicateur.Par exemple
et dans
didEndElement
vous pouvez réinitialiser l'indicateursawQuestion
Vous avez à mettre en œuvre les rappels pour NSXMLParserDelegate
Les plus importants sont:
Donc, lorsque vous appuyez sur les éléments, vous pouvez définir l'état si l'analyseur est actuellement dans la question ou la réponse de l'élément (avec un iVar) et puis quand vous avez appelé de retour avec foundCharacters, basé sur l'état que vous définissez lorsque vous appuyez sur l'élément, vous savez quelles sont les variables (question et réponse) pour affecter les données.