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 :

pb avec le transformer [SAX]


Sujet :

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

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut pb avec le transformer
    Bonjour,

    j'essaie desesperement de modifier un fichier XML par l'intermedaire de SAX. L arbre en mémoire parait pourtant bien etre modifié mais pas le fichier sur le disque

    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
     
    		String xmlfile="Shared.xml";				  
     
     
    			// Select node			
    			XPath xpath = XPathFactory.newInstance().newXPath();
     
     
    			String file = "test.mp3";
    			String xPath = "/SharedFile/File/Path[contains(text(), '"+ file +"')]/parent::File";
     
    			InputSource inputSource = new InputSource(xmlfile);
     
    			NodeList nodes = (NodeList)xpath.evaluate(xPath, inputSource, XPathConstants.NODESET);
     
    			Node node = null;
     
    			int length = nodes.getLength();
    			if(length>0){
    				System.out.println("0");
    				node = nodes.item(0);
     
    				// Update node
    				NodeList Mp3Node = node.getChildNodes();	
     
    				System.out.println("1");
    				for (int j = 0 ; j < Mp3Node.getLength() ; j++) {
    					Node element = Mp3Node.item(j);
     
    					if(element.getNodeName().equals("Album"))
    					{
    		System.out.println(element.getNodeName());		
    						System.out.println(element.getFirstChild().getNodeValue() + " --> TESSSSST");	
    				element.getFirstChild().setNodeValue("TESSSSST");
    						System.out.println(element.getFirstChild().getNodeValue());	
    					}
    				}
     
    			javax.xml.transform.sax.SAXSource saxSource = new javax.xml.transform.sax.SAXSource(inputSource);
     
    		TransformerFactory usine = TransformerFactory.newInstance();
            Transformer transformeur = usine.newTransformer();
            transformeur.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
            transformeur.setOutputProperty(OutputKeys.INDENT, "yes");
            transformeur.setOutputProperty(OutputKeys.METHOD, "xml");
            transformeur.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
            transformeur.setOutputProperty(OutputKeys.STANDALONE, "yes");
            transformeur.setOutputProperty(OutputKeys.VERSION, "1.0");
            transformeur.transform(saxSource, new StreamResult("Test.xml"));
    Si quelqu'un a une idée ...

  2. #2
    Membre Expert
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Par défaut
    es tu bien sur de ne pas utiliser Dom, plutot que Sax ?
    si tu t'es trompé, modifie ton tag dans le sujet...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut
    T es sure que mon xPath utilise DOM ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javax.xml.transform.sax.SAXSource saxSource = new javax.xml.transform.sax.SAXSource(inputSource);
    me crée bien une source SAX ....

    Y a un truc que je comprends pas

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut
    Personne n'aurait le moindre indice ? Je commence à accumuler les heures sur cette classe et ca devient de moins en moins compréhensible ....

  5. #5
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut SAX, XPath et DOM
    Bonjour,

    Vous ne sauvez aucune de vos modifications car vous copiez le fichier 'Shared.xml' dans le fichier 'Test.xml' en passant par une transfomateur SAX.

    Les éléments (DOM NodeList) modifiés sont en mémoires mais jamais sauvés.


    @+

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 9
    Par défaut
    Merci, pour ton aide. Je passe par le document Test.xml pour m assurer qu un documetn xml ressort bien de mon traitement (ce qui est de cas). J essaye de tout repasser en DOM et je dis si ca fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Analyse de texture avec la transformée en ondelettes
    Par ant6ares dans le forum Scilab
    Réponses: 1
    Dernier message: 22/01/2008, 12h50
  2. [XSLT]XML vers XML avec des transformations de texte au passage
    Par samcsharpandco dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/11/2007, 17h15
  3. Réponses: 8
    Dernier message: 11/02/2006, 23h36
  4. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15

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