40 votes

Choisir le bon IOS analyseur XML

Donc, Il y a un million de différents parseurs XML pour l'iPhone. J'ai une taille moyenne de fichier XML qui contient beaucoup de des balises en double (à différents points dans la hiérarchie). Je pensais à TBXML mais j'ai été préoccupé par son manque de charge de XPath. Par exemple, disons que mon fichier XML ressemblait à ça.

<blog>
   <author> foo1 </author>
   <comments>

       <comment>
            <text>
                <![CDATA[ HTML code that must be extracted ]]>
            </text>
            <author>foo2</author>
       </comment>

       <comment>
          <text>
              <![CDATA[ Here is another post ]]> 
          </text>
          <author>foo1</author>
      </comment>

   </comments>
</blog>

Fondamentalement, mes exigences sont que j'ai besoin d'être en mesure d'extraire cdata. Et savoir si c'est le blog de l'auteur d'un commentaire de l'auteur.

52voto

Daniel Amitay Points 5578

La meilleure comparaison que j'ai vu sur le sujet:

http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project

La différence entre le plus lent et le plus rapide des analyseurs dans son cas, a été un facteur de 2. En fonction de vos besoins de fonction, il y a certainement des analyseurs qui peut réduire votre analyse de moitié le temps.

31voto

ZaBlanc Points 2396

Découvrez RaptureXML. Il n'est pas officiel XPath comportement, mais il est assez proche. Votre question pourrait être:

[rxml iterate:@"comments.comment" with: ^(RXMLElement *e) {
    if ([[e child:@"author"].text isEqualToString:@"foo1"]) {
        NSLog(@"Blog Text is %@.", e.text);
    } else {
        NSLog(@"Comment Text is %@.", e.text);
    }
}];

Mise à JOUR: RaptureXML prend désormais en charge XPath!

4voto

onmyway133 Points 2196

Vous devriez regarder ces bibliothèques, dans l'ordre :)

  1. Ono
  2. XMLDictionary
  3. RaptureXML

Ono a la cool AFOnoResponseSerializer qui peut être intégré avec AFNetworking

1voto

tadija Points 56

J'ai fait cette nouvelle, simple et léger analyseur XML pour iOS en Swift - AEXML

Vous pouvez l'utiliser pour lire des données XML comme ceci:

let someValue = xmlDocument["element"]["child"]["anotherChild"].value

ou vous pouvez l'utiliser pour construire la chaîne XML comme ceci:

let document = AEXMLDocument()
let element = document.addChild("element")
element.addChild("child")
document.xmlString // returns XML string of the entire document structure

J'espère que ce sera utile pour quelqu'un.

0voto

Shan Points 43

Comme vous l'avez exigence pour les moyennes XML

TinyXML pourrait être un bon choix pour les moyennes documents si vous avez déjà une expérience avec les API et sont à l'aise avec C comme ça ports assez facilement sur l'iPhone.

Pour Plus d'informations, vous pouvez passer par ce lien

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X