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 -
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 !
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:
- Modifier un fichier XML en Java
- Fichier bin - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Modifier dns - Guide
- Comment réduire la taille d'un fichier - Guide