Considérez ce problème:
Utilisation JavaScript / E4X, dans un scénario d'utilisation sans navigateur (un moteur d'intégration HL7 JavaScript HL7), il existe une variable détenant un extrait XML qui pourrait avoir plusieurs nœuds répétés. p> question strong>: Comment obtenir le nombre de nœuds de PET dans JavaScript / E4X? P> EDIT: Clarifiez, cette question devrait être autour E4X (ECMAScript pour XML) . Toutes mes excuses à ceux qui ont répondu sans ces informations. J'aurais dû rechercher et posté cette information à l'avance. P> p>
3 Réponses :
Je dirais ... Utilisez jQuery!
var pets= xmlDoc.getElementsByTagName("pet"); for ( var i = 0; i < pets.length ; i++ ) { count++; // var petObj = { // pets[i].getAttribute("type") // }; }
Agréable. Toutefois, $ code> n'est pas destiné aux chaînes XML arbitraires, elle est destinée à HTML. Cela fonctionne par accident dans ce cas particulier. Garanti au travail est
$ (xmldoc) code> (c'est-à-dire le document DOM représentant
xmlstring code>).
Très bonne réponse! Malheureusement, JQuery n'est pas disponible pour moi, car le JS n'est pas dans un navigateur ou n'est pas capable de faire référence à des bibliothèques externes. Cette réponse obtient de toute façon une uppote!
100% correct. Trouver () fonctionne sur des éléments, pas du texte, qui n'est pas trop clair de mon nom de variable. Je suppose que je devrais rendre cela plus clair .. bon appel.
-1, vous n'avez pas utilisé la propriété code> code> avec jQuery code> ou
getelementsbytagname () code>.
Ionut, les deux échantillons de code fournis pour manipuler les nœuds pour animaux de compagnie au lieu de simplement obtenir le compte. C'est parce que la question initiale avant la modification a déclaré quelque chose à propos de la recherche de nœuds en double.
Utiliser le DOM, vous pouvez appeler plus d'informations: p> https://developer.mozilla.org/fr/dom olyement.getelementsbytagname P> vous «Regez au besoin d'obtenir le document XML en quelque sorte. XHR, par exemple, renvoie des documents comme analysé xml. P> getelementsbytagname () code>.
Utilisez un objet XX XML pour créer un xmllist de vos nœuds 'PET'. Vous pouvez ensuite appeler la méthode de longueur sur le xmllist.
//<pets> // <pet type="dog">Barney</pet> // <pet type="cat">Socks</pet> //</pets> // initialized to some XML resembling your example var petsXML = new XML(""); // build XMLList var petList = petsXML['pet']; // alternative syntax // var petList = petsXML.pet; // how many pet nodes are under a given pets node? var length = petList.length();
Ne pouvez-vous pas faire: petsxml.pet.length ();
Absolument, et en fait je ferais normalement cela! Je voulais juste casser des choses à clarifier que .Pet (ou ['PET']) Retours et objet XMllist, et cette longueur () est une méthode appelée à ce type.
Avez-vous au moins accès à une API DOM?