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 !

CLASSE UTILITAIRE POUR PARSER DES XML AVEC XPATH ET DOM.


Information sur la source

Catégorie :Application Classé sous : xpath, parsing, xml, dom Niveau : Initié Date de création : 26/08/2007 Date de mise à jour : 12/04/2008 19:39:31 Vu / téléchargé: 5 800 / 230

Note :
Aucune note

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

Après recherche sur la notion XPATH sur le site je n'ai pas trouvé mon bonheur. Je présente une classe utilitaire simple sans grande prétention permettant de faciliter le parsing de XML en utilisant des expressions XPATH.
 

Source

  • import java.io.FileInputStream;
  • import java.io.IOException;
  • import java.io.InputStream;
  • import java.text.ParseException;
  • import java.text.SimpleDateFormat;
  • import java.util.Calendar;
  • import java.util.Date;
  • import javax.xml.namespace.QName;
  • import javax.xml.parsers.DocumentBuilderFactory;
  • import javax.xml.parsers.ParserConfigurationException;
  • import javax.xml.xpath.XPathConstants;
  • import javax.xml.xpath.XPathExpression;
  • import javax.xml.xpath.XPathExpressionException;
  • import javax.xml.xpath.XPathFactory;
  • import org.w3c.dom.Document;
  • import org.w3c.dom.Node;
  • import org.w3c.dom.NodeList;
  • import org.xml.sax.SAXException;
  • /**
  • * Classe utilitaire pour parsing Xpath avec DOM.
  • *
  • * @author Celphys
  • */
  • public final class XPathUtils {
  • /**
  • * Suppression du contructeur par defaut.
  • */
  • private XPathUtils () {
  • }
  • /**
  • * Construction d'un objet DOM depuis un flux entrant.
  • *
  • * @param is
  • * flux en entrée
  • * @throws ParserConfigurationException
  • * erreur configuration parser
  • * @throws IOException
  • * erreur lecture flux
  • * @throws SAXException
  • * erreur parsing flux
  • * @throws ParserConfigurationException
  • * exception business retrouvé
  • * @return un objet document dom
  • */
  • public static Document getDomDocumentFromStream(final InputStream is)
  • throws SAXException, IOException, ParserConfigurationException {
  • return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is);
  • }
  • /**
  • * Evaluation d'une expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @param retour
  • * type élément retourné.
  • * @return
  • * element du XML.
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • */
  • private static Object getValueFromXPathDOM(final Document document, final String expression, final QName retour)
  • throws XPathExpressionException {
  • XPathFactory myXPathFactoy = XPathFactory.newInstance();
  • XPathExpression exp = myXPathFactoy.newXPath().compile(expression);
  • return exp.evaluate(document, retour);
  • }
  • /**
  • * Récupération d'un attribut de type 'chaine de caractère' depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @return
  • * attribut recherché
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • */
  • public static String getStringAttributeValueFromXPathDOM(final Document document, final String expression)
  • throws XPathExpressionException {
  • return (String) getValueFromXPathDOM(document, expression, XPathConstants.STRING);
  • }
  • /**
  • * Récupération d'un attribut de type 'nombre' depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @return
  • * attribut recherché
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • */
  • public static Double getDoubleAttributeValueFromXPathDOM(final Document document, final String expression)
  • throws XPathExpressionException {
  • return (Double) getValueFromXPathDOM(document, expression, XPathConstants.NUMBER);
  • }
  • /**
  • * Récupération d'un attribut de type 'boolean' depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @return
  • * attribut recherché
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • */
  • public static Boolean getBooleanAttributeValueFromXPathDOM(final Document document, final String expression)
  • throws XPathExpressionException {
  • return (Boolean) getValueFromXPathDOM(document, expression, XPathConstants.BOOLEAN);
  • }
  • /**
  • * Récupération d'un attribut de type 'date' depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @param sdf
  • * simple date format to parse attribute
  • * @return
  • * attribut recherché
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • * @throws ParseException
  • * erreur lors du parsing de la date, pattern non respecté.
  • */
  • public static Date getDateAttributeValueFromXPathDOM(final Document document, final String expression,
  • final SimpleDateFormat sdf)
  • throws XPathExpressionException, ParseException {
  • String value = getStringAttributeValueFromXPathDOM(document, expression);
  • return sdf.parse(value);
  • }
  • /**
  • * Récupération d'un attribut de type 'date' depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @param datePattern
  • * pattern pour la date.
  • * @return
  • * attribut recherché.
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • * @throws ParseException
  • * erreur lors du parsing de la date, pattern non respecté.
  • */
  • public static Date getDateAttributeValueFromXPathDOM(final Document document, final String expression,
  • final String datePattern)
  • throws XPathExpressionException, ParseException {
  • /* Note :
  • * Si un seul pattern dans votre application, préféré la méthode avec le simpleDateFormat pour ne pas recompiler
  • * le pattern du SimpleDateFormat a chaque appel.
  • */
  • SimpleDateFormat localSdf = new SimpleDateFormat(datePattern);
  • return getDateAttributeValueFromXPathDOM(document, expression, localSdf);
  • }
  • /**
  • * Récupération d'un attribut de type 'date' depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @param sdf
  • * simple date format.
  • * @return
  • * attribut recherché.
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • * @throws ParseException
  • * erreur lors du parsing de la date, pattern non respecté.
  • */
  • public static Calendar getCalendarAttributeValueFromXPathDOM(final Document document, final String expression,
  • final SimpleDateFormat sdf)
  • throws XPathExpressionException, ParseException {
  • Date adate = getDateAttributeValueFromXPathDOM(document, expression, sdf);
  • Calendar aCalendar = Calendar.getInstance();
  • aCalendar.setTime(adate);
  • return aCalendar;
  • }
  • /**
  • * Récupération d'un attribut de type 'date' depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @param datePattern
  • * pattern pour la date.
  • * @return
  • * attribut recherché.
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • * @throws ParseException
  • * erreur lors du parsing de la date, pattern non respecté.
  • */
  • public static Calendar getCalendarAttributeValueFromXPathDOM(final Document document, final String expression,
  • final String datePattern)
  • throws XPathExpressionException, ParseException {
  • Date adate = getDateAttributeValueFromXPathDOM(document, expression, datePattern);
  • Calendar aCalendar = Calendar.getInstance();
  • aCalendar.setTime(adate);
  • return aCalendar;
  • }
  • /**
  • * Récupération d'un attribut de type chaine de caractère depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @return
  • * attribut recherché
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • */
  • public static Node getNodeFromXPathDOM(final Document document, final String expression)
  • throws XPathExpressionException {
  • return (Node) getValueFromXPathDOM(document, expression, XPathConstants.NODE);
  • }
  • /**
  • * Récupération d'un attribut de type chaine de caractère depuis son
  • * expression XPATH.
  • *
  • * @param document
  • * document DOM.
  • * @param expression
  • * expression xpath.
  • * @return
  • * attribut recherché
  • * @throws XPathExpressionException
  • * erreur lors de la validation du XPATH.
  • */
  • public static NodeList getNodeListFromXPathDOM(final Document document, final String expression)
  • throws XPathExpressionException {
  • return (NodeList) getValueFromXPathDOM(document, expression, XPathConstants.NODESET);
  • }
  • /**
  • * Méthode pour tests.
  • * Contenu du document Exemple :
  • *
  • * <racine>
  • * <balise url="javafr" sourcefonctionne="true" annee="2007" miseenligne="28/08/2007">
  • * <fichier nom="undocument.xml" />
  • * <fichier nom="unautredocument.xml" />
  • * </balise>
  • * </racine>
  • *
  • * @param args
  • * arguments.
  • */
  • public static void main(final String[] args) {
  • // A Configurer
  • String CHEMIN_FICHIER_POUR_VOS_TESTS = "D:/exemple.xml";
  • try {
  • FileInputStream fis = new FileInputStream(CHEMIN_FICHIER_POUR_VOS_TESTS);
  • Document docDOM = XPathUtils.getDomDocumentFromStream(fis);
  • // Attribut de type String
  • String url = (String) XPathUtils.getStringAttributeValueFromXPathDOM(docDOM,
  • "/racine/balise/attribute::url");
  • System.out.println("URL : " + url);
  • // Attribut de type integer
  • Double annee = (Double) XPathUtils.getDoubleAttributeValueFromXPathDOM(docDOM,
  • "/racine/balise/attribute::annee");
  • System.out.println("ANNEE : " + annee);
  • // Attribut de type boolean
  • Boolean bool = (Boolean) XPathUtils.getBooleanAttributeValueFromXPathDOM(docDOM,
  • "/racine/balise/attribute::sourcefonctionne");
  • System.out.println("BOOLEAN : " + bool);
  • // Attribut de type Date
  • String pattern = "DD/MM/yyyy";
  • Date date = (Date) XPathUtils.getDateAttributeValueFromXPathDOM(docDOM,
  • "/racine/balise/attribute::miseenligne", pattern);
  • System.out.println("DATE : " + date);
  • // Attribut de type NodeSet
  • NodeList list = XPathUtils.getNodeListFromXPathDOM(docDOM,
  • "/racine/balise/fichier");
  • System.out.println("Longueur : " + list.getLength());
  • // Attribut de type Node
  • Node noeud = (Node) XPathUtils.getNodeFromXPathDOM(docDOM,
  • "/racine/balise");
  • System.out.println("Fichier : " + noeud.getNodeName());
  • } catch (Exception e) {
  • e.printStackTrace();
  • }
  • }
  • }
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 * Classe utilitaire pour parsing Xpath avec DOM.
 *
 * @author Celphys
 */
public final class XPathUtils {

    /**
     * Suppression du contructeur par defaut.
     */
    private XPathUtils () {
    }

    /**
     * Construction d'un objet DOM depuis un flux entrant.
     *
     * @param is
     *            flux en entrée
     * @throws ParserConfigurationException
     *             erreur configuration parser
     * @throws IOException
     *             erreur lecture flux
     * @throws SAXException
     *             erreur parsing flux
     * @throws ParserConfigurationException
     *             exception business retrouvé
     * @return un objet document dom
     */
    public static Document getDomDocumentFromStream(final InputStream is)
    throws SAXException, IOException, ParserConfigurationException {
        return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is);
    }

    /**
     * Evaluation d'une expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @param retour
     *          type élément retourné.
     * @return
     *          element du XML.
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     */
    private static Object getValueFromXPathDOM(final Document document, final String expression, final QName retour)
    throws XPathExpressionException {
        XPathFactory myXPathFactoy = XPathFactory.newInstance();
        XPathExpression exp = myXPathFactoy.newXPath().compile(expression);
        return exp.evaluate(document, retour);
    }

    /**
     * Récupération d'un attribut de type 'chaine de caractère' depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @return
     *           attribut recherché
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     */
    public static String getStringAttributeValueFromXPathDOM(final Document document, final String expression)
    throws XPathExpressionException {
        return (String) getValueFromXPathDOM(document, expression, XPathConstants.STRING);
    }

    /**
     * Récupération d'un attribut de type 'nombre' depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @return
     *           attribut recherché
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     */
    public static Double getDoubleAttributeValueFromXPathDOM(final Document document, final String expression)
    throws XPathExpressionException {
        return (Double) getValueFromXPathDOM(document, expression, XPathConstants.NUMBER);
    }

    /**
     * Récupération d'un attribut de type 'boolean' depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @return
     *           attribut recherché
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     */
    public static Boolean getBooleanAttributeValueFromXPathDOM(final Document document, final String expression)
    throws XPathExpressionException {
        return (Boolean) getValueFromXPathDOM(document, expression, XPathConstants.BOOLEAN);
    }

    /**
     * Récupération d'un attribut de type 'date' depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @param sdf
     *          simple date format to parse attribute
     * @return
     *          attribut recherché
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     * @throws ParseException
     *          erreur lors du parsing de la date, pattern non respecté.
     */
    public static Date getDateAttributeValueFromXPathDOM(final Document document, final String expression,
               final SimpleDateFormat sdf)
    throws XPathExpressionException, ParseException {
        String value = getStringAttributeValueFromXPathDOM(document, expression);
        return sdf.parse(value);
    }

    /**
     * Récupération d'un attribut de type 'date' depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @param datePattern
     *          pattern pour la date.
     * @return
     *          attribut recherché.
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     * @throws ParseException
     *          erreur lors du parsing de la date, pattern non respecté.
     */
    public static Date getDateAttributeValueFromXPathDOM(final Document document, final String expression,
                final String datePattern)
    throws XPathExpressionException, ParseException {
        /* Note :
         * Si un seul pattern dans votre application, préféré la méthode avec le simpleDateFormat pour ne pas recompiler
         * le pattern du SimpleDateFormat a chaque appel.
         */
        SimpleDateFormat localSdf = new SimpleDateFormat(datePattern);
        return getDateAttributeValueFromXPathDOM(document, expression, localSdf);
    }

    /**
     * Récupération d'un attribut de type 'date' depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @param sdf
     *          simple date format.
     * @return
     *          attribut recherché.
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     * @throws ParseException
     *          erreur lors du parsing de la date, pattern non respecté.
     */
    public static Calendar getCalendarAttributeValueFromXPathDOM(final Document document, final String expression,
            final SimpleDateFormat sdf)
    throws XPathExpressionException, ParseException {
        Date adate = getDateAttributeValueFromXPathDOM(document, expression, sdf);
        Calendar aCalendar = Calendar.getInstance();
        aCalendar.setTime(adate);
        return aCalendar;
    }

    /**
     * Récupération d'un attribut de type 'date' depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @param datePattern
     *          pattern pour la date.
     * @return
     *          attribut recherché.
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     * @throws ParseException
     *          erreur lors du parsing de la date, pattern non respecté.
     */
    public static Calendar getCalendarAttributeValueFromXPathDOM(final Document document, final String expression,
                final String datePattern)
    throws XPathExpressionException, ParseException {
        Date adate = getDateAttributeValueFromXPathDOM(document, expression, datePattern);
        Calendar aCalendar = Calendar.getInstance();
        aCalendar.setTime(adate);
        return aCalendar;
    }

    /**
     * Récupération d'un attribut de type chaine de caractère depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @return
     *           attribut recherché
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     */
    public static Node getNodeFromXPathDOM(final Document document, final String expression)
    throws XPathExpressionException {
        return (Node) getValueFromXPathDOM(document, expression, XPathConstants.NODE);
    }

    /**
     * Récupération d'un attribut de type chaine de caractère depuis son
     * expression XPATH.
     *
     * @param document
     *          document DOM.
     * @param expression
     *          expression xpath.
     * @return
     *           attribut recherché
     * @throws XPathExpressionException
     *          erreur lors de la validation du XPATH.
     */
    public static NodeList getNodeListFromXPathDOM(final Document document, final String expression)
    throws XPathExpressionException {
        return (NodeList) getValueFromXPathDOM(document, expression, XPathConstants.NODESET);
    }

    /**
     * Méthode pour tests.
     * Contenu du document Exemple :
     *
     * <racine>
     *  <balise url="javafr" sourcefonctionne="true" annee="2007" miseenligne="28/08/2007">
     *    <fichier nom="undocument.xml" />
     *    <fichier nom="unautredocument.xml" />
     *  </balise>
     * </racine>
     *
     * @param args
     *          arguments.
     */
    public static void main(final String[] args) {
        // A Configurer
        String CHEMIN_FICHIER_POUR_VOS_TESTS = "D:/exemple.xml";

        try {
            FileInputStream fis = new FileInputStream(CHEMIN_FICHIER_POUR_VOS_TESTS);
            Document docDOM = XPathUtils.getDomDocumentFromStream(fis);

            // Attribut de type String
            String url = (String) XPathUtils.getStringAttributeValueFromXPathDOM(docDOM,
                "/racine/balise/attribute::url");
            System.out.println("URL : " + url);

            // Attribut de type integer
            Double annee = (Double) XPathUtils.getDoubleAttributeValueFromXPathDOM(docDOM,
                "/racine/balise/attribute::annee");
            System.out.println("ANNEE : " + annee);

            // Attribut de type boolean
            Boolean bool = (Boolean) XPathUtils.getBooleanAttributeValueFromXPathDOM(docDOM,
                "/racine/balise/attribute::sourcefonctionne");
            System.out.println("BOOLEAN : " + bool);

            // Attribut de type Date
            String pattern = "DD/MM/yyyy";
            Date date = (Date) XPathUtils.getDateAttributeValueFromXPathDOM(docDOM,
            "/racine/balise/attribute::miseenligne", pattern);
            System.out.println("DATE : " + date);

            // Attribut de type NodeSet
            NodeList list = XPathUtils.getNodeListFromXPathDOM(docDOM,
                "/racine/balise/fichier");
            System.out.println("Longueur : " + list.getLength());

            // Attribut de type Node
            Node noeud = (Node) XPathUtils.getNodeFromXPathDOM(docDOM,
                "/racine/balise");
            System.out.println("Fichier : " + noeud.getNodeName());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

Conclusion

La méthode main est à sortir de la classe utilitaire. Elle propose un exemple pour se faire une meilleure idée des l'applications de cette classe.
Je joins un fichier exemple de xml.
 

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

Historique

12 avril 2008 19:39:31 :
Dans la méthode main remplacement des "DOmUtils" par XPathUtil s.. nom de la classe présentée.

Commentaires et avis

signaler à un administrateur
Commentaire de celphys2 le 26/08/2007 21:09:36

J'ai oublié de préciser qu'il est nécessaire d'ajouter une version de "xml-apis.jar" au classpath pour compiler.

signaler à un administrateur
Commentaire de loloof64 le 27/08/2007 10:55:41

Bonjour. J'aimerais utiliser votre classe, que j'ai déjà téléchargée, mais j'ai besoin de précisions pour un projet :
--- sur quel site puisse-je trouver le fichier archive xml-api.jar ?
--- quelle taille ce fichier archive fait-il ?
--- comment dois-je m'y prendre si jamais plusieurs noeuds du xml  sont identiques ?
(genre
<grille_kakuro>
  <case_kakuro />
  <case_kakuro />
  <case_kakuro />
</grille_kakuro>
je voudrait obtenir chaque case_kakuro séparemment)

Merci.
Loloof64

signaler à un administrateur
Commentaire de loloof64 le 27/08/2007 10:57:42

Enfin, les noeuds identiques n'ayant pas d'attribut, mais se distinguant par leurs enfants .

signaler à un administrateur
Commentaire de celphys2 le 27/08/2007 12:07:57

Q1) Le fichier xml-apis.jar est lié a la JAXP sun (Java API For XML Parsing).
Pour downloads : http://java.sun.com/xml/downloads/jaxp.html

Je ne réinvente pas la roue concernant XPATH, tu pourras trouver des informations complémentaires sur XPATh ici : http://xml.apache.org/xalan-j/xpath_apis.html

Q2) Dans ton extrait XML tu peux obtenir la liste des "case_kakuro" avec un appel de type
NodeList list = DOMUtils.getNodeListFromXPathDOM(docDOM,"/grille_kakuro/case_kakuro/"); Tu utilises ensuite l'API pour avoir les "children".

Ou alors tu tapes directement sur le bon noeud avec un appel de type
Node noeud = (Node) DOMUtils.getNodeFromXPathDOM(docDOM, "/grille_kakuro/case_kakuro/SOUSBALISECIBLE");

Si tu as des questions plus détaillées pour ton cas tu peux passer par mon mail ;).

signaler à un administrateur
Commentaire de mad_charif le 29/08/2007 11:20:40

bravo l'ami ;)

signaler à un administrateur
Commentaire de nadjet24 le 12/04/2008 12:10:41

BONJOUR j'ai utiliser la classe utilitaire mais une erreur s'affiche  au niveau de :

private DOMUtils() {
    }

et j'ignore pour qoi ? merci.

signaler à un administrateur
Commentaire de celphys2 le 12/04/2008 19:37:33

Vous avez parfaitement raison. En regardant le contenu de la méthode main je m'aperçois que "DOMUtils" (ancien nom de la classe) est à remplacer par le nouveau de la classe à savoir XPathUtils. Je corrige le code immédiatement.

signaler à un administrateur
Commentaire de loloof64 le 13/04/2008 18:35:48

Merci beaucoup Celphys2 : çela répond parfaitement à ma question :)

signaler à un administrateur
Commentaire de nadjet24 le 14/04/2008 19:35:40

BONJOUR j'ai utiliser votre programme je trouve qui il est tré bien structurée merci, mais j'ai utiliser un exemple mais j'ai que la taille des balises j'ai souhaiter avoir en sortie un fichier xml en arboressence merci votre aide, si vous pouvez m'aider.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

probleme de balise html avec xml et dom [ par lolofx ] Bonjour,voila, J'ai une base de donnees contenant des balise html et qd je cree mon fichier xml avec dom, il me remplace automatiquement "&lt;" et "&l dom, caractere speciaux en xml [ par lolofx ] Bonjour,voila, J'ai une base de donnees contenant des balise html et qd je cree mon fichier xml avec dom, il me remplace automatiquement "&lt;" et "&l DOM [ par demonc ] Bonjour, j'ai un problème avec DOM :Lorsque je supprime un élément ca crée des espaces vides dans le fichier XML et lorsque j'ajoute des éléments ils recherche xpath ds fichier xml [ par fredmorvant29 ] bonjour, je souhaite faire une recherche en java dans un fichier xml. je osuhaite utiliser le parseur DOM et faire une recherche à l'aide de xpath. en modif fichier xml lors parcours DOM [ par smaugg ] Bonjour les gens!!!Voila mon problème:Je doi utiliser le DOM pour exploiter et créer un fichier XML. Juske la tou va bien.Par contre, lorsque je modif JAVA & XML DOM [ par Titiboon ] Bonjour &#224; tous,Je sais parcourir un document xml de bout en bout en utilisant java et dom mais je n'arrive pas &#224; commencer de parser le docu XML Write & Read [ par Bryce_74 ] Bonsoir, je voudrais d&#233;velopper une application Java permettant de se connecter &#224; plusieurs base de donn&#233;es. Je m'occupe de d&#233;velo xml vers sql: DOM ou SAX? [ par janolapino ] Bonjour,Je souhaite &#233;crire le contenu d'un fichier xml vers une base mysql. Mon coeur balance entre entre DOM et SAX (mon coeur un peu influenc&# XML=>parsing [ par sheorogath ] bjr a tous ,on parle beaucoup du xml alors je me suis dit pourquoi ne pas essayer !!je me creer un beau fichier xml en respectant les balise , ouvrant [Axis][SOAP/DOM] SOAPHeaderElement.appendChild() => ClassCastException [ par broidsy ] Bonjour, Je suis en train d'essayé de construire des HeaderSOAP personalisés pour des webservices, mais j'ai une erreur de cast lorsque j'ajoute un n


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,42 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.