quelqu'un peut-il dire comment utiliser l'outil ANTLR (en Java) pour créer notre propre grammaire pour les documents xml et comment analyser ces documents en utilisant l'outil ANTLR (en java)?Comment utiliser ANTLR pour analyser le document xml
Répondre
Découvrez ANTXR, ma dérivation ANTLR qui prend en charge les balises XML dans la grammaire elle-même. Vous pouvez utiliser SAX ou XMLPull comme frontal. (Note: il est basé sur 2.x ANTLR)
http://javadude.com/tools/antxr/index.html
exemple court:
header {
package com.javadude.antlr.sample.xml;
import java.util.List;
import java.util.ArrayList;
}
class PeopleParser extends Parser;
document returns [List results = null]
: results=<people> EOF
;
<people> returns [List results = new ArrayList()]
{ Person p; }
: (p=<person> { results.add(p); } )*
;
<person> returns [Person p = new Person()]
{
String first, last;
p.setId(@id); // attributes are read using "@xxxx"
}
: (first=<firstName> { p.setFirstName(first); }
| last=<lastName> { p.setLastName(last); }
)*
;
<firstName> returns [String value = null]
: pcdata:PCDATA { value = pcdata.getText(); }
;
<lastName> returns [String value = null]
: pcdata:PCDATA { value = pcdata.getText(); }
;
Si vous voulez écrire un complètement conforme (même non-validation) analyseur XML, vous devez lire la Spécification W3C (http://www.w3.org/TR/REC-xml/). Vous devrez traiter des sous-ensembles de DTD internes et externes, des entités de paramètres et des entités générales. Ce sera une tâche majeure, même avec ANTLR. Vous devrez être en mesure de résoudre les URL et de gérer les espaces de noms. Et beaucoup plus.
Je suppose que vous souhaitez analyser uniquement un sous-ensemble (bien que je ne pense pas que ce soit une bonne idée d'écrire des analyseurs non conformes pour les normes). Dans ce cas, la première chose à faire est d'écrire l'EBNF pour votre sous-ensemble. Alors il devrait être assez simple :-)
EDIT Pour être très clair: tout ce qui n'est pas conforme à la spécification complète n'est PAS XML. Vous parlez de créer votre "propre grammaire" pour XML, mais il existe déjà une grammaire définie pour XML qui ne peut pas être modifiée. Si vous souhaitez créer votre propre syntaxe qui est "comme XML" vous le pouvez, mais toute personne qui pense que c'est réellement XML sera supprimée car il y a beaucoup de constructions XML que vous ne supporterez pas (ou qui supporteront différemment).
- 1. comment analyser le document XML?
- 2. Utiliser antlr pour analyser a | fichier séparé
- 3. Comment analyser le document XML dans Blackberry?
- 4. Comment analyser ce document XML?
- 5. Analyser le document XML dans Ruby
- 6. Analyser le document XML en C#
- 7. Comment utiliser Perl pour analyser Twitter XML?
- 8. Utiliser expat pour analyser xml
- 9. Comment analyser le document XML dans le rappel?
- 10. Cocoa/Objective-C: meilleure pratique pour analyser le document XML?
- 11. Analyser le document MS Word pour XMLfragments - C#
- 12. Je veux utiliser Xpath dans Android pour analyser XML
- 13. sauver le document xml
- 14. Analyser une entrée ambiguë avec Antlr
- 15. comment analyser rss xml?
- 16. comment analyser xml
- 17. aide pour structurer le document XML
- 18. Comment analyser le format "aléatoire" XML
- 19. document xml imbriqué dans le document Simplexml
- 20. Utilisation de DOM XML XML pour analyser XML (RSS)
- 21. Comment analyser XML (API XML Fogbugz)?
- 22. Comment utiliser Fortify pour analyser T-SQL
- 23. Pour analyser un fichier xml
- 24. Analyser le code XML Question
- 25. Comment analyser XML Schema File
- 26. XSLT analyse XML pour générer le document Word
- 27. Comment ajouter le noeud au document XML existant
- 28. Comment analyser un fichier XML
- 29. Comment analyser le fichier XML distant avec jQuery
- 30. comment fusionner chaîne XML pour principal objet de document XML
Y a-t-il une raison pour laquelle vous voulez utiliser ANTLR pour cela et pas un analyseur XML? –
Je voudrais créer mes propres grammaires pour les documents xml et aussi vouloir construire un analyseur pour analyser ces documents. SI il existe un autre outil disponible pour rendre la tâche plus simple? – Madhan