|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CRÉATEUR DE ARBORESCENCE TREENODE À PARTIR DE XML
Information sur la source
Description
Cette classe permet de créer une arborescence que l'on peut pratiquement directement intégrer ensuite dans une JTree lors de sa construction, à partir du contenu d'un fichier xml. Il est possible de le construire à partir des seuls noms des balises, ou des noms des balises et des attributs ... Regarder les commentaires JAVADOC des défintions des constantes dans la source pour plus de précision.
Source
- /**
- *
- */
- package com.loloof64.classesutilitaires;
-
- import java.io.File;
-
- import javax.swing.JOptionPane;
- import javax.swing.tree.DefaultMutableTreeNode;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
-
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
-
- /**
- * Classe qui permet de créer une arborescence javax.swing.tree.DefaultMutableTreeNode
- * (qui dérive javax.swing.tree.TreeNode) à integrer directemement
- * dans le constructeur de classe implémentant javax.swing.tree.TreeModel, à partir de la
- * reference java.io.File d'un fichier XML .
- * <br>Rappel : toute instance de classe implementant TreeModel
- * (c'est notamment le cas pour javax.swing.tree.DefaultTreeModel)
- * est directement intégrable dans le constructeur de javax.swing.JTree .
- * est directement
- * @author laurent bernabé
- *
- */
- public class CreateurTreeNodeAPArtirDeXML {
-
- private File fichier;
-
- /*
- * Les valeurs des modes simples doivent être des puissances de deux :
- * cela pour permettre la combinaison des différents modes simples .
- */
-
-
- /*
- * Modes simples
- */
-
- /**
- * Dans ce cas-là, seuls les noms des balises seront pris en
- * compte pour l'affichage .
- */
- public final int MODE_BALISES = 1;
-
- /**
- * Dans ce cas-là, seuls les attributs (dont la clé est passée en paramètre de ajouterArborescence) seront pris en compte
- * pour l'affichage .
- */
- public final int MODE_ATTRIBUTS = 2;
-
- /**
- * Affiche les valeurs des balises qui englobent directement
- * du contenu texte à la place d'autre balise ou de vide en plus
- * du nom des balises.
- * N'affiche que les noms des balises sinon .
- */
- public final int MODE_BALISES_ET_VALEURS = 4;
-
- /*
- * Modes complexes (résultant de combinaisons de modes simples)
- */
-
- /**
- * Dans ce cas-là, les balises et les attributs (dont la clé est passée en paramètre de ajouterArborescence) seront prises en compte
- * pour l'affichage .
- */
- public final int MODE_BALISES_ET_ATTRIBUTS = MODE_BALISES + MODE_ATTRIBUTS;
-
- /**
- * Affiche les valeurs des balises qui englobent directement
- * du contenu texte à la place d'autre balise ou de vide en plus
- * du nom des balises et des valeurs des attributs précisés en paramètre
- * de ajouterArborescence.
- * N'affiche que les noms des balises et des valeurs des attributs précisés en paramètre
- * de ajouterArborescence sinon .
- */
- public final int MODE_BALISES_ET_ATTRIBUTS_ET_VALEURS = MODE_BALISES_ET_VALEURS + MODE_ATTRIBUTS;
-
-
-
- /**
- * @return the fichier
- */
- public File getFichier() {
- return fichier;
- }
-
- /**
- * @param fichier the fichier to set
- */
- public void setFichier(File fichier) {
- this.fichier = fichier;
- }
-
- /**
- * Ajoute une JTree avec l'arborescence des attributs
- * du fichier XML dictionnaire inversé passé en paramètre .
- * Un fichier dictionnaire inversé bien formé a
- * <ul>
- * <li> la balise definitions pour racine
- * <li> des balises lien pour chaque mot de la definition courante
- * <li> une balise terminaison par définition
- * <li> les attributs des balises donnent leurs valeurs, et sont valeur
- * </ul>
- * @param mode - int - le mode d'ajout :
- * <ul>
- * <li> DictionnaireInverse.MODE_BALISES : les noms des balises sont affichés.
- * <li> DictionnaireInverse.MODE_BALISES_ET_VALEURS : affiche les valeurs des balises qui englobent directement
- * du contenu texte à la place d'autre balise ou de vide en plus
- * du nom des balises.
- * N'affiche que les noms des balises sinon .
- * <li> DictionnaireInverse.MODE_ATTRIBUTS :
- * les valeurs des attributs des balises, précisés dans
- * le paramètre attributs, sont affichées .
- * <li> DictionnaireInverse.MODE_BALISES_ET_ATTRIBUTS :
- * les noms des balises et les valeurs des attributs des balises, précisés dans
- * le paramètre attributs, sont affichées .
- * <li> DictionnaireInverse.MODE_BALISES_ET_ATTRIBUTS_ET VALEURS :
- * affiche les valeurs des balises qui englobent directement
- * du contenu texte à la place d'autre balise ou de vide en plus
- * du nom des balises et des valeurs des attributs précisés en paramètre
- * de ajouterArborescence.
- * N'affiche que les noms des balises et des valeurs des attributs précisés en paramètre
- * de ajouterArborescence sinon .
- * </ul>
- * @param attributs - String[] - les clés d'attribut (pris en compte si
- * le mode permet la lecture d'attributs) .
- * @throws IllegalArgumentException - si on autorise la lecture d'attribut et qu'aucun n'est précisé
- */
- public DefaultMutableTreeNode obtenirArborescenceDesAttributs(int mode, String[] attributs)
- throws IllegalArgumentException
- {
- /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- * ATTENTION
- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- * Tous les modes permettant la lecture d'attributs
- * doivent figurer dans ce test !!!
- * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- */
- if ((mode == MODE_ATTRIBUTS | mode == MODE_BALISES_ET_ATTRIBUTS | mode == MODE_BALISES_ET_ATTRIBUTS_ET_VALEURS)
- && (attributs == null || attributs.length==0) )
- throw new IllegalArgumentException("Lecture d'attributs permises et le tableau attributs est nul ou vide !");
- DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
- DefaultMutableTreeNode noeudDefinitions = null;
- try {
- DocumentBuilder constructeur = fabrique.newDocumentBuilder();
- Document document = constructeur.parse(fichier);
-
- /*
- * Le document contient un noeud au-dessus de la
- * première balise du fichier XML. (La super racine
- * de elemDefinitions n'est pas la super racine du fichier
- * XML, mais une racine supplémentaire située au-dessus
- * de cette dernière). Donc, plus bas, je retourne, non
- * pas elemDefinitions, mais son (premier) fils .
- */
- noeudDefinitions = new DefaultMutableTreeNode("Racine");
- Element elemDefinitions = document.getDocumentElement();
-
- ajouterEnfantsDeElementDansNoeud(elemDefinitions, noeudDefinitions, mode, attributs);
-
- } catch (IllegalArgumentException e){
- System.err.println("La référence fichier configurée est null !");
- e.printStackTrace();
- JOptionPane.showMessageDialog(null, "La référence fichier configurée est null !", "Erreur ! ", JOptionPane.ERROR_MESSAGE);
- } catch (Exception e){
- System.err.println("Erreur dans la lecture du fichier censé être un .xml !");
- e.printStackTrace();
- JOptionPane.showMessageDialog(null, "Erreur dans la lecture du fichier censé être un .xml !", "Erreur ! ", JOptionPane.ERROR_MESSAGE);
- }
- /*
- * Pour les raisons précisées ci-haut, c'est le
- * (premier) fils de elemDefinitions que je retourne .
- */
- return (DefaultMutableTreeNode)(noeudDefinitions.getFirstChild());
- }
-
- /**
- *
- * @param elem - org.w3c.dom.Element - l'Element du fichier XML
- * dont on doit extraire les enfants Element .
- * @param noeud - javax.swing.tree.DefaultMutableTreeNode - le noeud pour Jtree dans
- * lequel on souhaite fixer la structure obtenue .
- * @param mode - int - le mode d'ajout .
- * @param attributs - String[] - les clés d'attribut (prises en compte si
- * le mode permet la lecture d'attributs) .
- * @throws IllegalArgumentException - si on autorise la lecture d'attribut et qu'aucun n'est précisé .
- */
- private void ajouterEnfantsDeElementDansNoeud (
- Element elem, DefaultMutableTreeNode noeud, int mode, String[] attributs
- ) throws IllegalArgumentException
- {
- boolean estTerminaison;
- String chaineRecuperee,chaineRecupereeTemp,chaineRecuperee1;
- NodeList listeEnfants;
-
-
- //Determine l'état de terminaison ou non du noeud
- listeEnfants = elem.getChildNodes();
- if(listeEnfants.getLength()<=1)
- estTerminaison = true;
- else
- estTerminaison = false;
-
- //Création du texte du noeud
- switch (mode){
- case MODE_BALISES :
- chaineRecuperee = elem.getNodeName();
- if(chaineRecuperee == "")
- chaineRecuperee = "non/mal défini ";
- break;
- /*
- * Note : si l'attribut est unique,
- * le texte "(attribut <attribut>)"
- * ne sera pas affiché .
- */
- case MODE_ATTRIBUTS :
- if (attributs == null || attributs.length == 0)
- throw new IllegalArgumentException("Lecture d'attributs permises et le tableau attributs est nul ou vide !");
- chaineRecuperee = "";
- for (int i = 0; i < attributs.length; i++){
- chaineRecupereeTemp = elem.getAttribute(attributs[i]);
- if(chaineRecupereeTemp == "")
- chaineRecuperee += "non ou mal défini" +((attributs.length>1)?"(attribut "+ attributs[i]+")":"");
- else
- chaineRecuperee += chaineRecupereeTemp+((attributs.length>1)?"(attribut "+ attributs[i]+")":"");
-
- }
- break;
-
- /*
- * Affiche les valeurs des balises qui englobent directement
- * du contenu texte à la place d'autre balise ou de vide en plus
- * du nom des balises.
- * N'affiche que les noms des balises sinon .
- */
- case MODE_BALISES_ET_VALEURS :
- chaineRecuperee = elem.getNodeName();
- if(chaineRecuperee == "")
- chaineRecuperee = "non/mal défini";
- if(estTerminaison){
- chaineRecuperee += " (balise) : "+elem.getTextContent()+" (valeur)";
- }
- break;
- case MODE_BALISES_ET_ATTRIBUTS :
- chaineRecuperee = "";
- if (attributs == null || attributs.length == 0)
- throw new IllegalArgumentException("Lecture d'attributs permises et le tableau attributs est nul !");
- chaineRecuperee1 = elem.getNodeName();
- if(chaineRecuperee1 == ""){
- chaineRecuperee = "non/mal défini (balise)";
- }
- else {
- chaineRecuperee = chaineRecuperee1+" (balise)";
- }
- //attributs
- for (int i = 0; i < attributs.length; i++){
- chaineRecupereeTemp = elem.getAttribute(attributs[i]);
- if(chaineRecupereeTemp == "")
- chaineRecuperee += " : non ou mal défini (attribut "+ attributs[i]+")";
- else
- chaineRecuperee += " : "+chaineRecupereeTemp+" (attribut "+attributs[i]+")";
-
- }
- break;
-
- /*
- * Affiche les valeurs des balises qui englobent directement
- * du contenu texte à la place d'autre balise ou de vide en plus
- * du nom des balises et des valeurs des attributs précisés en paramètre
- * de ajouterArborescence.
- * N'affiche que les noms des balises et des valeurs des attributs précisés en paramètre
- * de ajouterArborescence sinon .
- */
- case MODE_BALISES_ET_ATTRIBUTS_ET_VALEURS :
- chaineRecuperee = "";
- if (attributs == null || attributs.length == 0)
- throw new IllegalArgumentException("Lecture d'attributs permises et le tableau attributs est nul !");
- chaineRecuperee1 = elem.getNodeName();
- if(chaineRecuperee1 == ""){
- chaineRecuperee = "non/mal défini (balise)";
- }
- else {
- chaineRecuperee = chaineRecuperee1+" (balise)";
- }
- //attributs
- for (int i = 0; i < attributs.length; i++){
- chaineRecupereeTemp = elem.getAttribute(attributs[i]);
- if(chaineRecupereeTemp == "")
- chaineRecuperee += " : non ou mal défini (attribut "+ attributs[i]+")";
- else
- chaineRecuperee += " : "+chaineRecupereeTemp+" (attribut "+attributs[i]+")";
-
- }
- //valeurs
- if (estTerminaison) {
- chaineRecuperee += " : " + elem.getTextContent() + "(valeur)";
- }
- break;
- default :
- chaineRecuperee = "Erreur : mode de lecture mal défini !";
- }
-
- //Enregistrement des enfants du noeud
- DefaultMutableTreeNode noeudInterne = new DefaultMutableTreeNode(chaineRecuperee);
- if(estTerminaison){
- noeudInterne.setAllowsChildren(false);
- }
- else{
- noeudInterne.setAllowsChildren(true);
- for(int i = 0; i < listeEnfants.getLength(); i++) {
- if (listeEnfants.item(i).getNodeType() == Node.ELEMENT_NODE) {
- ajouterEnfantsDeElementDansNoeud((Element) (listeEnfants
- .item(i)), noeudInterne, mode, attributs);
- }
- }
-
- }
- noeud.add(noeudInterne);
- }
-
-
- }
/**
*
*/
package com.loloof64.classesutilitaires;
import java.io.File;
import javax.swing.JOptionPane;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* Classe qui permet de créer une arborescence javax.swing.tree.DefaultMutableTreeNode
* (qui dérive javax.swing.tree.TreeNode) à integrer directemement
* dans le constructeur de classe implémentant javax.swing.tree.TreeModel, à partir de la
* reference java.io.File d'un fichier XML .
* <br>Rappel : toute instance de classe implementant TreeModel
* (c'est notamment le cas pour javax.swing.tree.DefaultTreeModel)
* est directement intégrable dans le constructeur de javax.swing.JTree .
* est directement
* @author laurent bernabé
*
*/
public class CreateurTreeNodeAPArtirDeXML {
private File fichier;
/*
* Les valeurs des modes simples doivent être des puissances de deux :
* cela pour permettre la combinaison des différents modes simples .
*/
/*
* Modes simples
*/
/**
* Dans ce cas-là, seuls les noms des balises seront pris en
* compte pour l'affichage .
*/
public final int MODE_BALISES = 1;
/**
* Dans ce cas-là, seuls les attributs (dont la clé est passée en paramètre de ajouterArborescence) seront pris en compte
* pour l'affichage .
*/
public final int MODE_ATTRIBUTS = 2;
/**
* Affiche les valeurs des balises qui englobent directement
* du contenu texte à la place d'autre balise ou de vide en plus
* du nom des balises.
* N'affiche que les noms des balises sinon .
*/
public final int MODE_BALISES_ET_VALEURS = 4;
/*
* Modes complexes (résultant de combinaisons de modes simples)
*/
/**
* Dans ce cas-là, les balises et les attributs (dont la clé est passée en paramètre de ajouterArborescence) seront prises en compte
* pour l'affichage .
*/
public final int MODE_BALISES_ET_ATTRIBUTS = MODE_BALISES + MODE_ATTRIBUTS;
/**
* Affiche les valeurs des balises qui englobent directement
* du contenu texte à la place d'autre balise ou de vide en plus
* du nom des balises et des valeurs des attributs précisés en paramètre
* de ajouterArborescence.
* N'affiche que les noms des balises et des valeurs des attributs précisés en paramètre
* de ajouterArborescence sinon .
*/
public final int MODE_BALISES_ET_ATTRIBUTS_ET_VALEURS = MODE_BALISES_ET_VALEURS + MODE_ATTRIBUTS;
/**
* @return the fichier
*/
public File getFichier() {
return fichier;
}
/**
* @param fichier the fichier to set
*/
public void setFichier(File fichier) {
this.fichier = fichier;
}
/**
* Ajoute une JTree avec l'arborescence des attributs
* du fichier XML dictionnaire inversé passé en paramètre .
* Un fichier dictionnaire inversé bien formé a
* <ul>
* <li> la balise definitions pour racine
* <li> des balises lien pour chaque mot de la definition courante
* <li> une balise terminaison par définition
* <li> les attributs des balises donnent leurs valeurs, et sont valeur
* </ul>
* @param mode - int - le mode d'ajout :
* <ul>
* <li> DictionnaireInverse.MODE_BALISES : les noms des balises sont affichés.
* <li> DictionnaireInverse.MODE_BALISES_ET_VALEURS : affiche les valeurs des balises qui englobent directement
* du contenu texte à la place d'autre balise ou de vide en plus
* du nom des balises.
* N'affiche que les noms des balises sinon .
* <li> DictionnaireInverse.MODE_ATTRIBUTS :
* les valeurs des attributs des balises, précisés dans
* le paramètre attributs, sont affichées .
* <li> DictionnaireInverse.MODE_BALISES_ET_ATTRIBUTS :
* les noms des balises et les valeurs des attributs des balises, précisés dans
* le paramètre attributs, sont affichées .
* <li> DictionnaireInverse.MODE_BALISES_ET_ATTRIBUTS_ET VALEURS :
* affiche les valeurs des balises qui englobent directement
* du contenu texte à la place d'autre balise ou de vide en plus
* du nom des balises et des valeurs des attributs précisés en paramètre
* de ajouterArborescence.
* N'affiche que les noms des balises et des valeurs des attributs précisés en paramètre
* de ajouterArborescence sinon .
* </ul>
* @param attributs - String[] - les clés d'attribut (pris en compte si
* le mode permet la lecture d'attributs) .
* @throws IllegalArgumentException - si on autorise la lecture d'attribut et qu'aucun n'est précisé
*/
public DefaultMutableTreeNode obtenirArborescenceDesAttributs(int mode, String[] attributs)
throws IllegalArgumentException
{
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* ATTENTION
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* Tous les modes permettant la lecture d'attributs
* doivent figurer dans ce test !!!
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*/
if ((mode == MODE_ATTRIBUTS | mode == MODE_BALISES_ET_ATTRIBUTS | mode == MODE_BALISES_ET_ATTRIBUTS_ET_VALEURS)
&& (attributs == null || attributs.length==0) )
throw new IllegalArgumentException("Lecture d'attributs permises et le tableau attributs est nul ou vide !");
DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
DefaultMutableTreeNode noeudDefinitions = null;
try {
DocumentBuilder constructeur = fabrique.newDocumentBuilder();
Document document = constructeur.parse(fichier);
/*
* Le document contient un noeud au-dessus de la
* première balise du fichier XML. (La super racine
* de elemDefinitions n'est pas la super racine du fichier
* XML, mais une racine supplémentaire située au-dessus
* de cette dernière). Donc, plus bas, je retourne, non
* pas elemDefinitions, mais son (premier) fils .
*/
noeudDefinitions = new DefaultMutableTreeNode("Racine");
Element elemDefinitions = document.getDocumentElement();
ajouterEnfantsDeElementDansNoeud(elemDefinitions, noeudDefinitions, mode, attributs);
} catch (IllegalArgumentException e){
System.err.println("La référence fichier configurée est null !");
e.printStackTrace();
JOptionPane.showMessageDialog(null, "La référence fichier configurée est null !", "Erreur ! ", JOptionPane.ERROR_MESSAGE);
} catch (Exception e){
System.err.println("Erreur dans la lecture du fichier censé être un .xml !");
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Erreur dans la lecture du fichier censé être un .xml !", "Erreur ! ", JOptionPane.ERROR_MESSAGE);
}
/*
* Pour les raisons précisées ci-haut, c'est le
* (premier) fils de elemDefinitions que je retourne .
*/
return (DefaultMutableTreeNode)(noeudDefinitions.getFirstChild());
}
/**
*
* @param elem - org.w3c.dom.Element - l'Element du fichier XML
* dont on doit extraire les enfants Element .
* @param noeud - javax.swing.tree.DefaultMutableTreeNode - le noeud pour Jtree dans
* lequel on souhaite fixer la structure obtenue .
* @param mode - int - le mode d'ajout .
* @param attributs - String[] - les clés d'attribut (prises en compte si
* le mode permet la lecture d'attributs) .
* @throws IllegalArgumentException - si on autorise la lecture d'attribut et qu'aucun n'est précisé .
*/
private void ajouterEnfantsDeElementDansNoeud (
Element elem, DefaultMutableTreeNode noeud, int mode, String[] attributs
) throws IllegalArgumentException
{
boolean estTerminaison;
String chaineRecuperee,chaineRecupereeTemp,chaineRecuperee1;
NodeList listeEnfants;
//Determine l'état de terminaison ou non du noeud
listeEnfants = elem.getChildNodes();
if(listeEnfants.getLength()<=1)
estTerminaison = true;
else
estTerminaison = false;
//Création du texte du noeud
switch (mode){
case MODE_BALISES :
chaineRecuperee = elem.getNodeName();
if(chaineRecuperee == "")
chaineRecuperee = "non/mal défini ";
break;
/*
* Note : si l'attribut est unique,
* le texte "(attribut <attribut>)"
* ne sera pas affiché .
*/
case MODE_ATTRIBUTS :
if (attributs == null || attributs.length == 0)
throw new IllegalArgumentException("Lecture d'attributs permises et le tableau attributs est nul ou vide !");
chaineRecuperee = "";
for (int i = 0; i < attributs.length; i++){
chaineRecupereeTemp = elem.getAttribute(attributs[i]);
if(chaineRecupereeTemp == "")
chaineRecuperee += "non ou mal défini" +((attributs.length>1)?"(attribut "+ attributs[i]+")":"");
else
chaineRecuperee += chaineRecupereeTemp+((attributs.length>1)?"(attribut "+ attributs[i]+")":"");
}
break;
/*
* Affiche les valeurs des balises qui englobent directement
* du contenu texte à la place d'autre balise ou de vide en plus
* du nom des balises.
* N'affiche que les noms des balises sinon .
*/
case MODE_BALISES_ET_VALEURS :
chaineRecuperee = elem.getNodeName();
if(chaineRecuperee == "")
chaineRecuperee = "non/mal défini";
if(estTerminaison){
chaineRecuperee += " (balise) : "+elem.getTextContent()+" (valeur)";
}
break;
case MODE_BALISES_ET_ATTRIBUTS :
chaineRecuperee = "";
if (attributs == null || attributs.length == 0)
throw new IllegalArgumentException("Lecture d'attributs permises et le tableau attributs est nul !");
chaineRecuperee1 = elem.getNodeName();
if(chaineRecuperee1 == ""){
chaineRecuperee = "non/mal défini (balise)";
}
else {
chaineRecuperee = chaineRecuperee1+" (balise)";
}
//attributs
for (int i = 0; i < attributs.length; i++){
chaineRecupereeTemp = elem.getAttribute(attributs[i]);
if(chaineRecupereeTemp == "")
chaineRecuperee += " : non ou mal défini (attribut "+ attributs[i]+")";
else
chaineRecuperee += " : "+chaineRecupereeTemp+" (attribut "+attributs[i]+")";
}
break;
/*
* Affiche les valeurs des balises qui englobent directement
* du contenu texte à la place d'autre balise ou de vide en plus
* du nom des balises et des valeurs des attributs précisés en paramètre
* de ajouterArborescence.
* N'affiche que les noms des balises et des valeurs des attributs précisés en paramètre
* de ajouterArborescence sinon .
*/
case MODE_BALISES_ET_ATTRIBUTS_ET_VALEURS :
chaineRecuperee = "";
if (attributs == null || attributs.length == 0)
throw new IllegalArgumentException("Lecture d'attributs permises et le tableau attributs est nul !");
chaineRecuperee1 = elem.getNodeName();
if(chaineRecuperee1 == ""){
chaineRecuperee = "non/mal défini (balise)";
}
else {
chaineRecuperee = chaineRecuperee1+" (balise)";
}
//attributs
for (int i = 0; i < attributs.length; i++){
chaineRecupereeTemp = elem.getAttribute(attributs[i]);
if(chaineRecupereeTemp == "")
chaineRecuperee += " : non ou mal défini (attribut "+ attributs[i]+")";
else
chaineRecuperee += " : "+chaineRecupereeTemp+" (attribut "+attributs[i]+")";
}
//valeurs
if (estTerminaison) {
chaineRecuperee += " : " + elem.getTextContent() + "(valeur)";
}
break;
default :
chaineRecuperee = "Erreur : mode de lecture mal défini !";
}
//Enregistrement des enfants du noeud
DefaultMutableTreeNode noeudInterne = new DefaultMutableTreeNode(chaineRecuperee);
if(estTerminaison){
noeudInterne.setAllowsChildren(false);
}
else{
noeudInterne.setAllowsChildren(true);
for(int i = 0; i < listeEnfants.getLength(); i++) {
if (listeEnfants.item(i).getNodeType() == Node.ELEMENT_NODE) {
ajouterEnfantsDeElementDansNoeud((Element) (listeEnfants
.item(i)), noeudInterne, mode, attributs);
}
}
}
noeud.add(noeudInterne);
}
}
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
créer un fichier excel à partir d'un fichier xml [ par Tara ]
Bonjour à tous !Mon problème se résume dans le sujet à savoir : comment puis-je créer un fichier excel à partir d'un fichier xml ?Faut-il que je passe
[JTree] Poblème de Copier/Coller [ par breed1200 ]
Salut à tous!Je fais un soft avec un JTree composé de DefaultMutableTreeNode qui contiennent des Objets persos. J'ai implémenté le Drag n drop sans so
xml à partir d'une requete [ par loy_822 ]
bonjour, voila mon problème :je suis en train de faire un explorateur avec un JTree qui représente tous les répertoires et sous-répertoires de ma base
Générer un fichier XML [ par Tara ]
Salut à tous !Je ne connais pas du tout le XML mais il me faudrait créer un fichier XML dans lequel je présenterais des données extraites à l'aide d
Créer un fichier xml [ par Tara ]
Merci pour les deux réponses que j'ai reçues. Mais j'ai tout de même vu que l'on pouvait écrire directement du xml à l'aide de DOM (et J... je ne sais
renommer une DefaultMutableTreeNode dans un JTree [ par ratonlarvor ]
ratonlarvor :Bonjour, Je voudrais renommer une DefaultMutableTreeNode dans mon JTree mais je ne connait pas la méthode.Quelqu'un saurait t'il comment
URGENT : problème de sélection dans un JTree [ par terminagroo ]
Bonjour,Voilà j'ai créé une arborescence de fichiers qui fonctionne plutôt bien (un JTree). Mais mon problème est que lorsque
JTree Applet probleme [ par fredspv ]
Bonjour,Je teste actuellement un JTree dans un Applet hors mon JTree ne s'affiche pas entierement pourquoi ?Voici le code:import java.awt.*;import jav
Operation sur JTree [ par alonsyl ]
bonjour,dans le constructeur d'une JFrame, j'ai construis un JTree de la maniere suivante :DefaultMutableTreeNode code6 = <
construire un JTree grace a un fichier XML [ par julwoko ]
voila Je suis débutant en JTree et XML et j'aimerai avoir quelque conseil ou si des personne l'avait deja fait ... J'ai un fichier xml de se ge
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|