Je suis actuellement en train de développer une application qui récupère des données d'Internet en utilisant SAX. Je l'ai déjà utilisé pour analyser des fichiers XML simples comme Google Weather API. Cependant, les sites Web qui m'intéressent prennent l'analyse au prochain niveau. La page est énorme et a l'air en désordre. J'ai seulement besoin de récupérer certaines lignes spécifiques; le reste n'est pas utile pour moi.
Est-il possible d'ignorer ces lignes/tags inutiles, ou dois-je aller pas à pas?Analyse de gros fichiers XML à l'aide de l'analyseur syntaxique SAX (ignore certaines lignes/tags)
Analyse de gros fichiers XML à l'aide de l'analyseur syntaxique SAX (ignore certaines lignes/tags)
Répondre
Oui, vous pouvez ignorer. Il suffit de définir les balises que vous voulez et il ne récupérera que ces valeurs de balise.
Thaks un Lot, votre réponse me sauvera temps lignes de codes! – Amine
Vous pouvez essayer d'utiliser XPath qui utilisera SAX derrière la scène pour analyser votre fichier XML. L'inconvénient ici est que XML sera analysé à chaque appel de la méthode d'évaluation Xpath.
Merci pour votre réponse je vais regarder dans cette possibilité! – Amine
Vous vous voulez lire des balises spécifiques puis analyseur DOM est beaucoup plus rapide que l'analyseur SAX parser..SAX est utile si vous voulez analyser de gros fichiers XML ..
L'analyse syntaxique SAX est beaucoup plus rapide que DOM. DOM exige également que le document entier soit mis en mémoire. –
Merci beaucoup pour votre réponse, j'apprécie vraiment votre aide, j'essaierai d'utiliser DOM et de voir quelles sorties je reçois! – Amine
Oui, vous pouvez le faire, ignorer les balises vous n'êtes pas intéressé. Mais notez que l'ensemble du document devra être analysé pour cela (DefaultHandler impl)
public startElement(String uri, String localName,
String qName, Attributes attributes) {
if(localName.equals("myInterestingTag") {
// do your thing....
}
}
public void endElement(String uri, String localName, String qName) {
if(localName.equals("myInterestingTag") {
// do your thing....
}
}
public void characters(char[] ch, int start, int length) {
// if parsing myinteresting tag... do some stuff.
}
Merci, c'est exactement comme ça que je le fais habituellement;)! – Amine
vous pouvez essayer une combinaison de TagSoup pour créer un document XML analysable et XPath pour aller chercher les pièces intéressantes .
Voir ma réponse à une question similaire pour une stratégie d'utilisation SAX pour sauter/ignorer tags:
Il implique la commutation ContentHandlers sur le XMLReader. Lorsque vous lisez un portage du document XML que vous souhaitez ignorer, il vous suffit d'échanger un ContentHandler qui ne fait rien avec les événements. Lorsque la fin de la section à ignorer est atteinte, le contrôle est renvoyé au gestionnaire de contenu que vous utilisiez pour traiter le contenu XML.
Votre réponse va certainement aider à atteindre mon objectif!merci beaucoup -Cheers – Amine
J'aime commons-digester. Il vous permet de spécifier des règles par rapport à des tags particuliers. La règle est exécutée uniquement lorsque la balise est rencontrée. Digest est construit sur sax et possède donc toutes les fonctions de sax plus la spécificité nécessaire pour analyser de manière sélective des tags spécifiques. Il utilise également une pile qui est poussée avec de nouveaux éléments au fur et à mesure que la balise correspondante est rencontrée et qui apparaît lorsque l'élément se termine. Je l'utilise pour analyser tous mes fichiers de configuration.
Découvrez digesteur à http://commons.apache.org/digester/
Merci beaucoup Raja, je vais regarder dans cette solution !! – Amine
- 1. Analyse XML à l'aide de l'analyseur syntaxique android sax
- 2. Java XML analyse syntaxique
- 3. Analyse de gros fichiers XML sous Android
- 4. Analyse de gros fichiers pseudo-xml en python
- 5. Emacs travaillant avec de gros fichiers XML
- 6. Annuler l'analyse syntaxique de SAX?
- 7. XML Jquery analyse syntaxique
- 8. XML, LINQ analyse syntaxique
- 9. XML Jquery analyse syntaxique
- 10. ANDROID: Analyse syntaxique XML
- 11. XML Rss analyse syntaxique
- 12. Analyse, traitement et utilisation de très gros fichiers XML
- 13. analyse syntaxique SAX - moyen efficace pour obtenir les nœuds texte
- 14. perl analyse syntaxique xml aide
- 15. Scala: XML Attribute analyse syntaxique
- 16. analyse syntaxique Ordonné de XML par jquery
- 17. ignorer certaines balises XML dans SAX
- 18. comment faire l'analyse syntaxique xml sax dans Android
- 19. Transformation de gros fichiers XML
- 20. Comment convertir l'analyse syntaxique avec Dom à l'analyse syntaxique SAX
- 21. Analyse syntaxique des attributs XML avec PHP
- 22. django analyse syntaxique xml avec le modèle
- 23. XML DOM analyse syntaxique avec Java
- 24. analyse syntaxique des données xml iphone
- 25. est-il un xml dynamique analyse syntaxique
- 26. Problème lors de l'analyse des balises XML à fermeture automatique à l'aide de l'analyseur syntaxique SAX
- 27. xml simple avec analyse syntaxique jquery
- 28. Analyseur syntaxique SAX en Java
- 29. Analyse de fichiers XML volumineux?
- 30. analyse syntaxique des fichiers CSV arrière
Je pense que VTD-xml étendu vous permet d'accéder à XML avec un accès aléatoire d'une manière efficace de la mémoire, bien mieux que SAX ou digesteur apache –