XML DOM Get Node Values
La propriété nodeValue est utilisée pour obtenir la valeur textuelle d'un nœud.
La méthode getAttribute() renvoie la valeur d'un attribut.
Obtenir la valeur d'un élément
Dans le DOM, tout est un nœud. Les nœuds d'élément n'ont pas de valeur textuelle.
La valeur textuelle d'un nœud d'élément est stockée dans un nœud enfant. Ce nœud est appelé nœud de texte.
Pour récupérer la valeur de texte d'un élément, vous devez récupérer la valeur du nœud de texte des éléments.
La méthode getElementsByTagName
La méthode getElementsByTagName() renvoie une liste de nœuds de tous les éléments , avec le nom de balise spécifié, dans le même ordre qu'ils apparaissent dans le document source.
Supposons que " books.xml " ait été chargé dans xmlDoc.
Ce code récupère le premier élément <title> :
var x = xmlDoc.getElementsByTagName("title")[0];
La propriété ChildNodes
La propriété childNodes renvoie une liste des nœuds enfants d'un élément .
Le code suivant récupère le nœud de texte du premier élément <title> :
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
La propriété nodeValue
La propriété nodeValue renvoie la valeur de texte d'un nœud de texte .
Le code suivant récupère la valeur textuelle du nœud de texte du premier élément <title> :
Exemple
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;
Résultat en z : "Italien de tous les jours"
Exemple complet
Exemple
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET",
"books.xml", true);
xhttp.send();
function myFunction(xml) {
var xmlDoc = xml.responseXML;
var x = xmlDoc.getElementsByTagName('title')[0];
var y =
x.childNodes[0];
document.getElementById("demo").innerHTML = y.nodeValue;
}
</script>
</body>
</html>
Parcourez tous les éléments <title> :
Obtenir la valeur d'un attribut
Dans le DOM, les attributs sont des nœuds. Contrairement aux nœuds d'élément, les nœuds d'attribut ont des valeurs textuelles.
La façon d'obtenir la valeur d'un attribut est d'obtenir sa valeur textuelle.
Cela peut être fait en utilisant la méthode getAttribute() ou en utilisant la propriété nodeValue du nœud d'attribut.
Obtenir une valeur d'attribut - getAttribute()
La méthode getAttribute() renvoie la valeur d'un attribut .
Le code suivant récupère la valeur textuelle de l'attribut "lang" du premier élément <title> :
Exemple
x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");
Résultat en txt : "fr"
Parcourez tous les éléments <book> et obtenez leurs attributs "category":
Obtenir une valeur d'attribut - getAttributeNode()
La méthode getAttributeNode() renvoie un nœud d'attribut .
Le code suivant récupère la valeur textuelle de l'attribut "lang" du premier élément <title> :
Exemple
x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;
Résultat dans txt = "fr"
Parcourez tous les éléments <book> et obtenez leurs attributs "category":