Soyez le premier à donner votre avis sur cette source.
Vue 11 894 fois - Téléchargée 1 171 fois
import java.io.*; import nu.xom.*; // cette classe ne marche qu'avec xom-1.1.jar public class xom { public static void main(String[] args) { Builder builder = new Builder();// nouvelle insatnce du parseur // Pensez tout d'abord a initailiser votre pgm, vous pouvrez faire tout // betement args[0] par c:\\votre_fichier.xml try { File file = new File(args[0]); Document doc = builder.build(file);// instance du document XML Element root = doc.getRootElement();// saisie de la racine listChildren(root, 0);//charger les enfants :) de la racine } // error de formatage xml catch (ParsingException ex) { System.out.println(args[0] + " n'est pas bien formatter :( "); System.out.println(ex.getMessage()); } catch (IOException ex) { System.out.println(ex); } } public static void listChildren(Node current, int depth) { Tokeniser t; // cette classe peut bien servir a d'autre truc voir Tokeniser.java String [] s; printSpaces(depth);// cette var je ne sais pas a quoi elle sert! String data = ""; // parcourt des enfants (feuille de l'arborescence) if (current instanceof Element) { Element temp = (Element) current; data = ": " + temp.getQualifiedName(); // getQualifiedName= valeur de la balise, // comme on peut aussi saisir les namespace etc if (temp.getAttributeCount()>0){ // cette condition anisi que la boucle servent pour traiter // (manuellement certe) les attribut des identificateurs // xml for (int i=0; i<temp.getAttributeCount();i++){ t = new Tokeniser(); s=t.Tokenizer(temp.getAttribute(i).toString(),"="); data +="\n" + s[0]+" = "+t.Tokenizer(s[1],"\"")[0]; } } } else if (current instanceof ProcessingInstruction) { ProcessingInstruction temp = (ProcessingInstruction) current; data = ": " + temp.getTarget(); } else if (current instanceof DocType) { DocType temp = (DocType) current; data = ": " + temp.getRootElementName(); } else if (current instanceof Text || current instanceof Comment) { String value = current.getValue(); value = value.replace('\n', ' ').trim(); if (value.length() <= 20) data = ": " + value; else data = ": " + current.getValue().substring(0, 17) + "..."; } // les attributs ne sont jammais retourné par getChild System.out.println(current.getClass().getName() + data); for (int i = 0; i < current.getChildCount(); i++) { listChildren(current.getChild(i), depth+1); } } private static void printSpaces(int n) { for (int i = 0; i < n; i++) { System.out.print(' '); } } }
13 avril 2008 à 18:31
11 avril 2007 à 15:45
merci
11 avril 2007 à 15:13
try {
File file = new File(args[0]);
Document doc = builder.build(file);// instance du document XML
Element root = doc.getRootElement();// saisie de la racine
listChildren(root, 0);//charger les enfants :) de la racine
}
en effet faut que la methode demande une File et non un text
plis fos
16 août 2006 à 10:44
et désolé si le code source n'est pas bien commenter (un truc fait a la hate).
ciao
16 août 2006 à 10:20
printSpaces(depth);// cette var je ne sais pas a quoi elle sert!
si tu regarde la dernière méthode du code tu te rends compte qu'en fait, il s'agit juste du formatage pour l'affichage de la structure du fichier xml :
root
rootChil1
rootChild2
child1OfRootChild2
child2OfRootChild2
...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.