selectSingleNode fonctionne mais pas selectNodes
-
30-09-2019 - |
Question
Javascript:
var req=xmlDoc.responseXML.selectSingleNode("//title");
alert(req.text);
comme prévu, renvoie le texte du premier noeud « de titre ».
mais
var req=xmlDoc.responseXML.selectNodes("//title");
alert(req.text);
renvoie "non défini." Ce qui suit:
var req=xmlDoc.responseXML.selectNodes("//title").length;
alert(req);
renvoie "2." Je ne comprends pas. Peut-être quand je selectNodes il ne reçoit pas le nœud de texte dans le titre. C'est je pense pour l'instant ... voici le xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catalog SYSTEM "catalog.dtd">
<catalog>
<decal>
<company>Victor</company>
<title>Wood Horn Blue Background</title>
<image>
<url>victor01.jpg</url>
<width>60</width>
<height>60</height>
<name>Wood Horn Blue Background</name>
<link></link>
</image>
<price>$15.00</price>
<instock>In Stock</instock>
<notes>no extra info</notes>
</decal>
<decal>
<company>Victor</company>
<title>Wood Horn without Black Ring</title>
<image>
<url>victor02.jpg</url>
<width>60</width>
<height>60</height>
<name>Wood Horn Without Black Ring</name>
<link></link>
</image>
<price>$15.00</price>
<instock>In Stock</instock>
<notes>no extra info</notes>
</decal>
</catalog>
Merci
La solution
selectNodes renvoie un tableau au lieu d'un seul noeud (d'où l'appellation de pluriel de la méthode).
Vous pouvez utiliser un indexeur pour obtenir les nœuds individuels:
var req=xmlDoc.responseXML.selectNodes("//title");
for (var i=0;i<req.length;i++) {
alert(req[i].text);
}
Autres conseils
selectNodes
renvoie un tableau.
Par conséquent, lorsque vous écrivez var req=xmlDoc.responseXML.selectNodes("//title")
, la variable req
est titulaire d'un array d'éléments.
Étant donné que les tableaux ne sont pas une propriété text
, vous obtenez undefined
.
Au lieu de cela, vous pouvez writereq[0].text
pour obtenir le texte du premier élément du tableau.
Comme le nom de méthode indique, selectNodes
renvoie une collection (tableau). Vous devez boucler sur eux. Ou si vous êtes sûr de la structure, saisir le premier élément.