9
votes

Analysage XML - Jeunes de script de droite / forfaits pour le travail?

Je sais que n'importe quelle langue est capable d'analyser XML; Je cherche vraiment juste des avantages ou des inconvénients que vous avez peut-être rencontrés dans vos propres expériences. Perl serait ma norme aller ici, mais je suis ouvert aux suggestions.

Merci!

Mise à jour: j'ai fini par aller avec XML :: Simple Qui a fait un bon travail, mais j'ai un conseil si vous envisagez de l'utiliser - Recherchez l'option ForgeArray en premier. Je devais réécrire un tas d'énoncés après avoir appris que c'est habituellement la meilleure pratique à définir forcée. Cette page avait l'explication la plus claire que je puisse trouver. Franchement, je suis surpris que ce n'est pas le comportement par défaut.


3 commentaires

Cela dépend principalement de ce que vous devez faire en plus d'analyser XML, et probablement aussi à l'aise avec une telle langue ou une telle langue. Python et C # ont un excellent support pour analyse XML et sont très flexibles, C ++ a également de bonnes bibliothèques à faire cela, bien que la langue en soi soit plus stricte et demandera une planification plus minutieuse (pas nécessairement une mauvaise chose).


Vous demandez déjà à propos d'un analyseur approprié, alors ignorez les avertissements et des discussions sur l'utilisation d'expressions régulières sur cette page, mais en bas, cela donne des suggestions d'analyses pour une variété de langues: htmlParsing.icenine.ca


Je suppose que je suis le seul à penser que cette question n'a nul droite réponse sans autre critère spécifique.


12 Réponses :


10
votes

XML :: Twig est très gentil, surtout parce que ce n'est pas aussi terriblement verbeux comme certaines des autres options.


2 commentaires

Une seconde pour XML :: Twig, spécialement si vous devez gérer d'énormes ensembles de données.


XML :: Twig permet de traiter XML en mode mixte.



10
votes

Si vous utilisez Perl, alors je recommanderais XML :: simple :

Comme de plus en plus de sites Web commencent à utiliser XML pour leur contenu, c'est de plus en plus important pour le web Développeurs de savoir comment analyser XML données et convertir en différents formats. C'est là que le module PERL appelé xml :: simple arrive. Il faut loin de la corvée d'analyse de données XML, rendre le processus plus facile que vous jamais pensé possible.


2 commentaires

XML :: Simple est acceptable Parfois , mais en ce qui concerne des données complexes et formatées strictement formatées, c'est souvent plus de problèmes qu'on vaut la peine. J'essaierais XML :: Twig ou XML :: libxml à la place.


Ou quand XML est grand - en utilisant n'importe quel analyseur DOM, y compris XML :: Simple, est une très mauvaise idée.



7
votes

Pour une analyse XML pure, je n'utiliserais pas Java, C #, C ++, C, etc. Ils ont tendance à surmonter les choses, comme dans vous, voulez une banane et obtenez le gorille avec elle aussi.

Des langues de niveau supérieur et interprétées telles que Perl, PHP, Python, Groovy conviennent plus. Perl est inclus dans pratiquement toutes les distributions Linux, de même que PHP pour la plupart.

J'ai utilisé récemment Groovy pour plus particulièrement cela et l'a trouvé très facile. Vous pensez que un analyseur C sera des ordres de grandeur plus rapidement que Groovy par exemple.


6 commentaires

Analysing XML est C # est simple, qu'avez-vous utilisé pour signaler une telle expérience? Était-ce avec quelque chose d'autre que les bibliothèques standard? Et pour le compte rendu, je placerais à peine Perl et PHP comme une "langue supérieure" en comparaison, ce ne sont pas de véritables langues entièrement fledgd orientées objet.


J'ai utilisé mono (.NET 2.0 compatible). Et j'ai dit une langue de niveau supérieur, pas plus haut, faites-le sur le point de voir ce que cela signifie.


Ah, votre phrase ressemblait à une comparaison mais que vous vouliez simplement dire haut -level language alors - et non, je n'utilise généralement pas google ou wikipedia pour vérifier les définitions de mots, mais je comprends que c'est une erreur commune d'autres souvent faire ;-) Dans tous les cas, System.xml est également à Mono et je n'ai rien trouvé surcommandé à ce sujet. Cela souligne simplement un autre critère important, c'est que l'on doit ressentir à l'aise avec le langage de programmation.


@Redglyph: rien ne va mal avec ça - vous pouvez faire du travail. Juste plus compliqué que les autres que je mentionne.


Redglyph: Regardez l'orignal pour Perl.


En ce qui concerne Perl, à droite, la plupart du temps que vous vous attendez à le trouver installé, mais je suis encore à trouver une distribution dans laquelle PHP est inclus ...



1
votes

Python a un assez bon soutien pour XML. De la bibliothèque standard des forfaits DOM aux bibliothèques beaucoup plus «pythoniques», qui analysent XML directement dans des structures d'objet plus utilisables.

Il n'y a pas vraiment une langue "bonne" si ... il y a de bons paquets XML pour la plupart des langues de nos jours.


0 commentaires

6
votes

Tout va être dans les bibliothèques.

Python a d'excellentes bibliothèques pour XML. Ma préférence est LXML . Il utilise libxml / libxslt afin que ce soit rapide, mais la liaison en python rendra vraiment facile à utiliser. Perl peut très bien avoir des bibliothèques OO aussi impressionnantes.


0 commentaires

3
votes

Pas exactement un langage de script, mais vous pouvez également envisager Scala . Vous pouvez commencer à partir de ici . < / p>


0 commentaires

2
votes

Ce n'est pas un langage de script, mais Scala est idéal pour Utilisation de XML Nativement . Aussi, voir cette Book (brouillon) de Burak .


0 commentaires

4
votes

J'ai vu que les gens recommandent XML :: Simple si vous décidez de Perl.

tandis que xml :: simple est, en effet, très simple à utiliser et super, est un analyseur DOM. En tant que tel, il est malheureusement inappropriée de traiter de gros fichiers XML à mesure que votre processus serait à court de mémoire (c'est un problème courant pour n'importe quel anal dom analyseur , non limité à XML :: Simple ou Perl) .

Donc, pour les fichiers volumineux, vous devez choisir un analyseur SAX dans la langue que vous choisissez (il existe de nombreux analyseurs XML SAX dans Perl ou utilisez un autre analyseur de flux comme XML :: Twig encore meilleur que Standard SAX Parser. peut Parlez pour d'autres langues).


1 commentaires

En fait, XML :: Twig est (avec catégorie!) Non Sax. Il est conçu pour être plus facile d'utiliser ce SAX, tout en étant toujours axé sur le flux.



0
votes

lire les données de fichiers XML est morte facile avec C # et Linq à XML!

en quelque sorte, bien que j'aime vraiment Python, j'ai trouvé difficile d'analyser XML avec les bibliothèques standard.


0 commentaires

3
votes

Le support XML de Scala est plutôt bon, d'autant plus que XML peut simplement être saisi directement dans des programmes Scala.

Microsoft a également fait des trucs intégrés cool avec leur linq pour xml

mais j'aime vraiment Elementtree et uniquement ce paquet est une bonne raison d'utiliser Python au lieu de Perl;)

Voici un exemple: < Pré> xxx


0 commentaires

0
votes

Je dirais que cela dépend de tout le reste. Vb.net 2008 utilise des littéraux XML, a IntelliSense for LINQ à XML et quelques-uns Les jouets électriques qui aident à tourner XML en XSD . Si personnellement, si vous travaillez dans un environnement .NET, je pense que c'est le meilleur choix.


0 commentaires

1
votes

Si vous allez utiliser ruby ​​ pour le faire alors vous «Je vais vouloir jeter un coup d'œil à Nokogiri ou Hpricot . Les deux ont leurs forces et leurs faiblesses. La sélection de la langue et des packages revient vraiment à ce que vous voulez faire avec les données après l'avoir analysée.


0 commentaires