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 :

Problème de suppression sauts de lignes après modification XML


Sujet :

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

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Problème de suppression sauts de lignes après modification XML
    Bonjour,
    Le code suivant permet de supprimer l'element contenant nom="achille" du fichier XML "facture.xml". Le pb est que je ne parviens pas à éliminer tous les espaces blancs parasites du fichier modifié . Une idée ?

    fichier XML de départ :
    -------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0"?>
     
    <facture date="01/06/2004" montant="20.80">
    	<client id="1" nom="achille"/>
    	<client id="2" nom="talon"/>
    </facture>
    Code java permettant la suppression d'un element :
    -----------------------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    package com.cap.xml;
    import java.io.*;
     
    import org.w3c.dom.*;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.xml.sax.*;
    import javax.xml.parsers.*;
    import java.io.*;
     
    import org.apache.crimson.tree.XmlDocument;
    import org.apache.crimson.tree.XmlWriteContext;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.output.*;
    import java.util.List;
    import java.util.Iterator;
     
     
     
    public class TestDom2 {
     
    	public static void toModify() {
     
    		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    		DocumentBuilder builder;
     
    		try 
    		{
    			builder 			= factory.newDocumentBuilder();
    			FileInputStream fis = new FileInputStream(new File("C:\\TESTZIPZIP\\facture.xml"));
    			Document document 	= builder.parse(fis);
    			//Document document 	= builder.parse("C:\\TESTZIPZIP\\facture.xml");
    			NodeList elements 	= document.getElementsByTagName("client"); 
    			Element elementCl;
     
    			for ( int i=0; i<elements.getLength();i++)
    			{
    				elementCl 	= (Element)elements.item(i);
    				System.out.println("Client : "+ elementCl.getAttribute("nom"));
     
    				if ((elementCl.getAttribute("nom")).equalsIgnoreCase("achille")) 
    				{	
    					Node node = elementCl.getParentNode().removeChild(elementCl);			
    					// sur sortie standard
    					//((XmlDocument)document).write(System.out);
    					((XmlDocument)document).write( new FileOutputStream("C:\\TESTZIPZIP\\facture.xml"));
    					break;					
    				}		
    				else
    				{
    					System.out.println("pas d'achille");
    				}
    				System.out.println("i =" + i);
    			}						
    		} 
    		catch (ParserConfigurationException e) 
    		{
    			e.printStackTrace();
    		} 
    		catch (SAXException e) 
    		{
    			e.printStackTrace();
    		}
    		catch (IOException e) 
    		{	
    			e.printStackTrace();
    		}
    		//System.exit(0);
    	}
    }
    Fichier XML après modification :
    ------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <facture date="01/06/2004" montant="20.80">
     
     
      <client id="2" nom="talon" />
     
    </facture>
    Merci.

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Je veux bien que ca te fasse des espace mais concrétement ca change quoi à ton fichier xml ?


    Si tu l'ouvre avec IE par ex ca te les enlève ces espace? non


    As-tu une bonne raison de vouloir les enlever ou c'était juste pour le fun?

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Non, non, ce n'est pas juste pour le fun !
    Je pensais qu'il fallait mieux les enlever mais si ce n'est pas la cas, tant mieux !!!!!!!
    Merci.

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    logique parceque DOM crée des noeud texte superlu pour les espaces et retout chariot il faut don les suprimer a la main,et faut faire attention car DOM peut decomposer un seul texte en plusieurs noeud text, je reprend ta boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     for &#40; int i=0; i<elements.getLength&#40;&#41;;i++&#41;
             &#123;
                elementCl    = &#40;Element&#41;elements.item&#40;i&#41;;
                System.out.println&#40;"Client &#58; "+ elementCl.getAttribute&#40;"nom"&#41;&#41;;
     
                if &#40;&#40;elementCl.getAttribute&#40;"nom"&#41;&#41;.equalsIgnoreCase&#40;"achille"&#41;&#41;
                &#123;   
                 Node node =  for &#40; int i=0; i<elements.getLength&#40;&#41;;i++&#41;
             &#123;
                elementCl    = &#40;Element&#41;elements.item&#40;i&#41;;
                System.out.println&#40;"Client &#58; "+ elementCl.getAttribute&#40;"nom"&#41;&#41;;
     
                if &#40;&#40;elementCl.getAttribute&#40;"nom"&#41;&#41;.equalsIgnoreCase&#40;"achille"&#41;&#41;
                &#123;   
              Node node = elementCl.getParentNode&#40;&#41;.removeChild&#40;elementCl&#41;;         
                  Node g=elementCl.getNextSibling&#40;&#41;; //prochain noeud 
                 String s=g.getNodeName&#40;&#41;; //nom de la balise
                 while&#40;!s.equals&#40;"client"&#41;&#41;&#123;   //supprime jusqu'a client
                         Node m=g.getParentNode&#40;&#41;.removeChild&#40;g&#41;;
                         g=g.getNextSibling&#40;&#41;;
                         s=g.getNodeName&#40;&#41;;
                    &#125;//while
                   // sur sortie standard
                   //&#40;&#40;XmlDocument&#41;document&#41;.write&#40;System.out&#41;;
                   &#40;&#40;XmlDocument&#41;document&#41;.write&#40; new FileOutputStream&#40;"C&#58;\\TESTZIPZIP\\facture.xml"&#41;&#41;;
                   break;            
    ............................

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci bien pour ttes ces infos.
    Bon'aprem'

Discussions similaires

  1. [2.2.2] Saut de ligne après un Text
    Par imhotep_zr7s dans le forum BIRT
    Réponses: 13
    Dernier message: 06/08/2008, 16h36
  2. problème avec les sauts de ligne dans une string
    Par hexdoc dans le forum Langage
    Réponses: 6
    Dernier message: 02/05/2008, 16h28
  3. suppression sauts de ligne ?
    Par delavega dans le forum Flash
    Réponses: 7
    Dernier message: 03/11/2006, 09h35
  4. Problème de détection saut de ligne
    Par sandytarit dans le forum Langage
    Réponses: 8
    Dernier message: 03/08/2006, 22h21
  5. [Photoshop] Problème avec les sauts de lignes
    Par programmerPhil dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 31/05/2006, 18h16

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