En premier lieu ton XML est faux !
Les balises fermantes s'écrive de cette façon </tagBalise>. Et non de cette façon <tagBalise/>, car cela est une balise auto-fermante. (ouverture et fermeture de balise en même temps.)
En supposant qu'on ai :
Document doc = dBuilder.parse(fXmlFile);
On peux parcourir l'ensemble des clients de la manière suivante :
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
| import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XMLReader {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
File fXmlFile = new File("clients.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
NodeList nList = doc.getElementsByTagName("client");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Nom : " + eElement.getElementsByTagName("nom").item(0).getTextContent());
System.out.println("ville : " + eElement.getElementsByTagName("ville").item(0).getTextContent());
System.out.println("codePostal : " + eElement.getElementsByTagName("codePostal").item(0).getTextContent());
System.out.println("adresse : " + eElement.getElementsByTagName("adresse").item(0).getTextContent());
System.out.println("num : " + eElement.getElementsByTagName("num").item(0).getTextContent());
System.out.println("fax : " + eElement.getElementsByTagName("fax").item(0).getTextContent());
System.out.println("mail : " + eElement.getElementsByTagName("mail").item(0).getTextContent());
System.out.println("contacTechnique : " + eElement.getElementsByTagName("contacTechnique").item(0).getTextContent());
System.out.println("agenceAffectee : " + eElement.getElementsByTagName("agenceAffectee").item(0).getTextContent());
}
}
}
} |
Forcement avec ton xml exemple cela ne marchera jamais. Car, il est mal formaté et donc non parssable. Mais cet exemple est utilisable :
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
| <?xml version="1.0" encoding="UTF-8"?>
<donnees>
<client>
<nom>Test génération</nom>
<ville>Amiens</ville>ville >
<codePostal>80 000</codePostal>
<adresse>1 rue test</adresse>
<num>0303030303</num>
<fax>0202020202</fax>
<mail> test@test.test</mail>
<contacTechnique> génération test</contacTechnique>
<agenceAffectee>Amiens</agenceAffectee>
</client>
<client>
<nom>IDIOT</nom>
<ville>NOMANLAND</ville>
<codePostal>66 666</codePostal>
<adresse>42 rue de l'enfer</adresse>
<num>06 42 42 42 42</num>
<fax>06 42 42 42 41</fax>
<mail> test@test.42</mail>
<contacTechnique>developpez.net</contacTechnique>
<agenceAffectee>FullIdiots</agenceAffectee>
</client>
</donnees> |
Cordialement,
Patrick Kolodziejczyk.
Partager