GetElementById avec l'API DOM
Résolu
Tylkaz
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir,
Comme il est écrit dans le titre, j'ai un problème avec l'utilisation de la méthode GetElementById avec l'API DOM dans la manipulation de fichier XML.
Lorsque j'utilise cette méthode, la console me renvoie "null" comme si l'id en question n'existe pas. J'aimerai, s'il vous plait que l'on m'explique pourquoi mon code est défaillant.
Ci-dessous le fichier XML :
Ci-dessous mon code java :
Merci d'avance.
Cordialement,
Tylkaz.
Comme il est écrit dans le titre, j'ai un problème avec l'utilisation de la méthode GetElementById avec l'API DOM dans la manipulation de fichier XML.
Lorsque j'utilise cette méthode, la console me renvoie "null" comme si l'id en question n'existe pas. J'aimerai, s'il vous plait que l'on m'explique pourquoi mon code est défaillant.
Ci-dessous le fichier XML :
<Organisme id="mairie-95002-01" codeInsee="95002" dateMiseAJour="2013-07-01" pivotLocal="mairie">
<Nom>Mairie d'Ableiges</Nom>
</Organisme>
Ci-dessous mon code java :
package TestXML;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class test2 {
public static void main(String[] args) {
Document document = null;
DocumentBuilderFactory factory = null;
DocumentBuilder builder = null;
try {
factory = DocumentBuilderFactory.newInstance();
builder = factory.newDocumentBuilder();
document = builder.parse("mairie-95002-01.xml");
Element insee = document.getElementById("codeInsee");
System.out.println (insee);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Merci d'avance.
Cordialement,
Tylkaz.
A voir également:
- GetElementById avec l'API DOM
- Naz api - Accueil - Piratage
- Steam api dll - Forum Windows
- Api taboola ✓ - Forum Virus
- Api injoignable cyberghost ✓ - Forum Réseaux sociaux
- Flirt dom tom - Forum Consommation & Internet
4 réponses
Je ne suis pas tout à fait sûr, mais il me semble qu'il faut prendre la notion d'id au sens XML, c'est à dire accompagné d'une DTD qui spécifie quel est ton identifiant, il ne suffit donc pas que ton attribut s'appelle "id" pour que cela fonctionne.
Comment et quelle doit être cette DTD que je dois utiliser afin d'avoir ce codeInsee ?
Merci d'avoir répondu.
Merci d'avoir répondu.
La DTD est un entête du fichier XML qui décrit son format et permet d'en valider le contenu.
Cela donnerait quelque chose comme ça (à vérifier) :
À voir : Document type definition, Validating with XML Schema
Cela donnerait quelque chose comme ça (à vérifier) :
<!ELEMENT Organisme (Nom*) > <!ELEMENT Nom (#PCDATA) > <!ATTLIST Organisme id ID #REQUIRED codeInsee CDATA #REQUIRED dateMiseAJour CDATA #REQUIRED pivotLocal CDATA #REQUIRED >
À voir : Document type definition, Validating with XML Schema
Bonjour
Je ne m'y connais pas en XML, mais il me semble que codeInsee est un attribut et non un élément.
Il faudrait donc d'abord isoler l'élément d'id "mairie-95002-01" puis lire son attribut avec Element.getAttribute("codeInsee");
Je ne m'y connais pas en XML, mais il me semble que codeInsee est un attribut et non un élément.
Il faudrait donc d'abord isoler l'élément d'id "mairie-95002-01" puis lire son attribut avec Element.getAttribute("codeInsee");
J'ai finalement trouvé la solution de ce problème. Il fallait en effet utilisé getAttribute comme il est spécifié sur ce lien : http://www.java2s.com/Code/JavaAPI/org.w3c.dom/NodegetAttributes.htm
Cordialment Tylkaz.
Cordialment Tylkaz.
Tu peux effectivement récupérer un attribut quelconque de cette manière mais tu perds l'intérêt des identifiants...
Au passage tu remarqueras l'utilisation des DTD dans le code que tu nous indique. C'est à mon sens indispensable pour un fichier XML sinon ce n'est qu'un fichier texte sans sémantique.
Au passage tu remarqueras l'utilisation des DTD dans le code que tu nous indique. C'est à mon sens indispensable pour un fichier XML sinon ce n'est qu'un fichier texte sans sémantique.