Modifier un fichier XML en Java

Résolu
kanadianDri3 Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   -  
kanadianDri3 Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je cherche à modifier un fichier XML en Java. Savez vous comment faire, car je bloque !

Je me doute que c'est un peu lourd. En gros, là où sa bloque c'est quand je veux remplacer l'information. J'imagine que c'est en utilisant mon Transformer (variable trans). Tout le reste marche trés bien.

Dans la ligne : Result destination = new StreamResult () ;
Si je remplace en mettant : Result destination = new StreamResult (System.out ) ; Ca m'affiche correctement le text mais dans la console. Comment faire pour récupérer ce stream pour l'utiliser et remplacer ce qui se trouve dans mon fichier XML ?


Voila ma fonction:

public void deleteUserRegister(String userDeleted){
try {
DocumentBuilderFactory documentBuildFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder documentBuilder = documentBuildFactory.newDocumentBuilder();

Document XMLDoc = documentBuilder.parse( new File( "C:\\Users\\Dave\\Documents\\NetBeansProjects\\Server\\src\\server\\XMLUser.xml" ) ) ;

XMLDoc.getDocumentElement().normalize() ;


TransformerFactory transFact = TransformerFactory.newInstance() ;

Transformer trans = transFact.newTransformer() ;


NodeList userList = XMLDoc.getElementsByTagName( "user" ) ;

for (int i = 0; i < userList.getLength(); i++) {

Node myUserNode = userList.item( i ) ;

Element userElement = ( Elemen t) myUserNode ;

NodeList userNodeElementPseudo = userElement.getElementsByTagName( "pseudo" ) ;

Element pseudoElement = ( Element ) userNodeElementPseudo.item( 0 ) ;

NodeList pseudoNodeElement = pseudoElement.getChildNodes() ;

if ( ( ( Node ) pseudoNodeElement.item(0) ).getNodeValue().equals( userDeleted ) ) {

userElement.getParentNode().removeChild( userElement ) ;

XMLDoc.normalize() ;

Source source = new DOMSource( XMLDoc ) ;

Result destination = new StreamResult() ;

transf.transform( source , destination ) ;

}

}

}

catch (TransformerException ex) { }

catch (SAXException ex) { }

catch (IOException ex) { }

catch (ParserConfigurationException ex) { }

}

Et le fichier XML:

<?xml version="1.0" encoding="UTF-8"?>

<!--
Document : XMLUser.xml
Created on : 6 mars 2010, 20:31
Author : Dave
Description:
Purpose of the document follows.
-->

<Users>
<user id="1">
<pseudo>dave</pseudo>
<password>password</password>
<function>admin</function>
</user>
<user id="2">
<pseudo>user1</pseudo>
<password>mdp</password>
<function>user</function>
</user>
<user id="3">
<pseudo>user2</pseudo>
<password>mdp</password>
<function>user</function>
</user>
</Users>

Merci beaucoup pour votre aide !
A voir également:

2 réponses

kanadianDri3 Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   10
 
solution :

Result destination = new StreamResult( new File( "C:\\Users\\Dave\\Documents\\NetBeansProjects\\Server\\src\\server\\XMLUser.xml" ) ) ;
1
kanadianDri3 Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   10
 
Toujours pas d'idée ?
0