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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top