iPhone TBXML Schleifen und Analysieren von Daten

8

Grundsätzlich habe ich eine XML-Antwort, die zurückgegeben wird und eine Zeichenfolge, und ich muss durch die XML-Schleife und speichert alle Informationen in einem Array. Hier ist die XML

%Vor%

Ich brauche diese 2 <records> und alle dort gespeicherten Daten in einem Array. so ....

ein Datensatzarray - & gt; Array von Datensätzen - & gt; Array von jedem Datensatz, Daten ....

Ich habe hier gesessen und versucht, dies mit TBXML auszuprobieren, was einfach genug ist, um einen einzigen Knoten zu erfassen ... aber ich kann das nicht tun :(

    
MrPink 23.03.2011, 14:03
quelle

4 Antworten

14

Alles klar, Ihr erster Schritt wäre, eine Klasse zu erstellen, die die Daten analysiert. Nennen Sie es zum Beispiel RecordParser . Wir müssen jetzt ein paar Methoden in der Kopfzeile hinzufügen, sowie ein NSMutableArray .

%Vor%

Nun, fahren Sie fort und berechnen Sie Ihre Implementierung. Wir müssen nun diese beiden Methoden implementieren, um das zu tun, was wir tun sollen.

%Vor%

Grundsätzlich wird diese Methode die fragliche XML-Datei erfassen und den Analyseprozess starten. Außerdem initialisieren Sie Ihr Array und behalten es bei. Jetzt kommen wir zum Käse.

%Vor%

Im Grunde bewirkt die Methode, dass die XML-Datei nach einem Element mit dem gesuchten Namen sucht. Anschließend werden die Daten von den untergeordneten Knoten abgerufen. Außerdem werden die Daten dem Array records hinzugefügt. Also, wenn es fertig ist, sollte es die gewünschten Daten in Ihrem records -Array haben, das Sie beliebig manipulieren können.

Dies ist völlig ungeprüft . Gib mir nicht die Schuld, wenn es deinen Computer in die Luft jagt und deine Katze tötet. Ich würde normalerweise nicht die ganze Arbeit nehmen, um eine vollständige Methode wie diese zu schreiben, aber ich mag TBXML . Bitte lassen Sie mich wissen, wenn es funktioniert. Ich wirklich würde es zu schätzen wissen.

    
sudo rm -rf 23.03.2011, 15:53
quelle
1

Ich habe eine rekursive Funktion geschrieben, um jedes korrekt erstellte XML mit der TBXML-Bibliothek zu analysieren.

In meinem Projekt habe ich eine Klasse, um XML zu analysieren. Es hat eine Klassenmethode namens: + (id) infoOfElement: (TBXMLElement *) element

Wie zu verwenden:

%Vor%     
Nikolay Shubenkov 24.06.2013 12:31
quelle
0

Verwende Apples NSXMLParser ; es wurde altmodisch und alles andere als wirklich effizient.

Richten Sie Ihren XMLParser entsprechend ein (verwenden Sie das NSXMLParserDelegate -Protokoll).

Sobald Ihr Parser den Aufruf von parser:didStartElement:namespaceURI:qualifiedName:attributes: delegiert hat, rufen Sie ihn zurück und elementName ist gleich Record (von dem, was Sie zu haben scheinen).

Alloc 'init' an NSMutableDictionary . Dann wie oben, wenn elementName gleich Destination dann [myDictionary setObject: elementName forKey: @"Destination"] und et cætera ist.

Hoffnung, die geholfen hat:).

Kleine Randnotiz: Verwenden Sie lieber Apple's "Technologie" anstelle von Drittanbietern: es ist effizienter und die Möglichkeiten sind endlos .

    
G33kz0r 23.03.2011 15:08
quelle
-2

Es ist besser, NSXMLParser zu verwenden, weil es eine offizielle Version von Apple ist.

Die gesamte Dokumentation von NSXMLParser ist hier .

Hier ist auch ein Tutorial von NSXMLParser.

    
Mohammad Kalim 06.01.2012 20:29
quelle