Parser un xml en java avec DOM
Est ce que quelqu' un pourrait m' aider comment faire une update d' un fichier xml en java.
J' ai mis ci-dessous le fichier xml.
J' ai réussi à modifier le nom, et je voudrai changé aussi le numero de telephone mais je n' arrive pas.
j' ai mis ci-dessous mon code.
Si quelqu un à une idée, je suis prenant.
Merci à vous
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<repertoire>
<perso sexe="feminin">
<nom>Lauria</nom>
<telephones>
<telephone type="fixe">01 02 03 04 05</telephone>
<telephone type="portable">06 07 08 09 10</telephone>
</telephones>
</perso>
</repertoire> |
Code:
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
| try {
File inputFile = new File("repertoire.xml");
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(inputFile);
final Element racine = doc.getDocumentElement();
System.out.println("\n*************RACINE************");
System.out.println(racine.getNodeName());
Node personne = doc.getElementsByTagName("perso").item(0);
NamedNodeMap attr = personne.getAttributes();
Node nodeAttr = attr.getNamedItem("sexe");
nodeAttr.setTextContent("type");
NodeList list = personne.getChildNodes();
for (int temp = 0; temp < list.getLength(); temp++) {
Node node = list.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) node;
if ("nom".equals(eElement.getNodeName())) {
if ("Lauria".equals(eElement.getTextContent())) {
eElement.setTextContent("njara");
}
}
if ("telephones".equals(eElement.getNodeName())) {
?????????????????????? help me please
}}
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
System.out.println("-----------Modified File-----------");
StreamResult consoleResult = new StreamResult(System.out);
transformer.transform(source, consoleResult);
} catch (Exception e) {
e.printStackTrace();
}
}
} |