IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Rajouter des éléments à l’aide de chaine de caractère


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut Rajouter des éléments à l’aide de chaine de caractère
    Bonjour,
    J’aimerais rajouter des informations à un XML préexistant avec dom a partir d’une chaine de caractère..

    Par exemple :
    Document document ;

    Contient :

    <annuaire>
    *<personne>
    **<nom>Smith</nom>
    **<prenom>John</prenom>
    *</personne>
    *<personne>
    **<nom>Dupont</nom>
    **<prenom>Pierre</prenom>
    *</personne>
    </annuaire>

    Je souhaite recevoir une chaine de caractère

    String nouveauxMembres

    Qui contient la chaine :

    *<personne>
    **<nom>Gary</nom>
    **<prenom>Cooper</prenom>
    *</personne>
    *<personne>
    **<nom>Einstein</nom>
    **<prenom>Albert</prenom>
    *</personne>

    Je souhaiterais pouvoir faire une opération genre :

    ElementAnnuaire.addSousElement(nouveauxMembres)

    et avoir au final dans document :

    <annuaire>
    *<personne>
    **<nom>Smith</nom>
    **<prenom>John</prenom>
    *</personne>
    *<personne>
    **<nom>Dupont</nom>
    **<prenom>Pierre</prenom>
    *</personne>
    *<personne>
    **<nom>Gary</nom>
    **<prenom>Cooper</prenom>
    *</personne>
    *<personne>
    **<nom>Einstein</nom>
    **<prenom>Albert</prenom>
    *</personne>
    </annuaire>

    Mon cas est beaucoup plus compexe que celui –ci, en fait je manipule du SVG, donc écartez la solution qui consiste a extraire les infos utiles du texte et a les balancer a des setAttribute ou a des createElement.

    Merci d’avance !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Par défaut
    Salut,

    Document viens de quelle API, si il s'agit de JDom il suffit de faire addContent (tonElement);
    Mais je suis peut être complétement a cote de la plaque .

    a+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut
    Dom

    La méthode que tu a cité n'existe pas avec cette bib là

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut
    Je vais reformuler la question de manière plus clair

    Kh4iN3: ce que je souhaite c'est pas d'ajouter des éléments avec du texte mais à partir du texte

    J’aimerais rajouter des informations à un XML préexistant avec dom a partir d’une chaine de caractère..

    Par exemple :
    Document document ;

    Contient :

    <annuaire>
    *<personne>
    **<nom>Smith</nom>
    **<prenom>John</prenom>
    *</personne>
    *<personne>
    **<nom>Dupont</nom>
    **<prenom>Pierre</prenom>
    *</personne>
    </annuaire>

    Je souhaite recevoir une chaine de caractère

    String nouveauxMembres

    Qui contient la chaine :

    *<personne>
    **<nom>Gary</nom>
    **<prenom>Cooper</prenom>
    *</personne>
    *<personne>
    **<nom>Einstein</nom>
    **<prenom>Albert</prenom>
    *</personne>

    Je souhaiterais pouvoir faire une opération genre :

    ElementAnnuaire.addSousElement(nouveauxMembres)

    et avoir au final dans document :

    <annuaire>
    *<personne>
    **<nom>Smith</nom>
    **<prenom>John</prenom>
    *</personne>
    *<personne>
    **<nom>Dupont</nom>
    **<prenom>Pierre</prenom>
    *</personne>
    *<personne>
    **<nom>Gary</nom>
    **<prenom>Cooper</prenom>
    *</personne>
    *<personne>
    **<nom>Einstein</nom>
    **<prenom>Albert</prenom>
    *</personne>
    </annuaire>

    Mon cas est beaucoup plus compexe que celui –ci, en fait je manipule du SVG, donc écartez la solution qui consiste a extraire les infos utiles du texte et a les balancer a des setAttribute ou a des createElement.

    Merci d’avance !

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 167
    Par défaut
    Un truc dans ce genre devrait marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import org.xml.sax.InputSource;
     
    String str = "<element1><fils1>text</fils1></element1>";
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource(new StringReader(str));
    Document newDoc = db.parse(is);
    Ensuite il faut juste prendre le documentElement de ce nouveau document et faire un importNode dans ton document.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource(new StringReader(strDonneeSVGaAjouter));
    
    Document newDoc = db.parse(is);
                
    Element e = document.getElementById("1");
                
    e.appendChild(newDoc);

    La chaine de caractère xml est strDonneeSVGaAjouter
    Le document de base qui contient déjà du svg est document

    Voilà l'erreur que j'ai:

    org.w3c.dom.DOMException: The current node (type: 1, name: g) do not allow children of the given type (type: 9, name: #document)



    Je souhaite ajouter a l'élément "<g id="1">" ce nouveau document. Comment convertir le type document en un type élement qu'il accepterait?

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/02/2008, 11h57
  2. [Tableaux] Extraire des mots d'une chaine de caractères
    Par pratiquement dans le forum Langage
    Réponses: 5
    Dernier message: 24/01/2008, 09h20
  3. extraire des entiers d'une chaine de caractère
    Par 18Marie dans le forum Langage
    Réponses: 9
    Dernier message: 10/08/2006, 11h17
  4. [MySQL] extraire des nombre d'une chaine de caractères et addition
    Par Yotho dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/03/2006, 16h54
  5. Réponses: 9
    Dernier message: 17/01/2003, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo