J'ai un problème avec la récupération des valeurs d'attribut via E4x en javascript.Javascript E4X: Comment parcourir correctement un attribut XMLList?
Supposons une liste de noeuds XML comme ce qui suit comme le XMLObject:
<node att1="value1" att2="value2" att3="value3" att4="value4">
<nodeChild><!CDATA[/* ... */]></nodeChild>
/* more node childs */
</node>
I correctement accédé aux nœuds (dans une boucle) et son attribut noeuds en utilisant la méthode attributes()
:
var attributes = node[n].attributes() ;
for(var n = 0 ; n < attributes.length() ; n++) {
var name = attributes[n].name() ;
var value = attributes[n].toString() ;
//.. handle the values
}
Maintenant, pour un, les noms et les valeurs ne sont pas retournés correctement la valeur (n) renvoie la valeur de nom (n + 1), à savoir la valeur de att1
sera value2
; si je mets var value = attributes[ (n+1) ].toString()
les valeurs sont retournées correctement mais la première valeur retournera undefined
. Possible Je suis juste dense sur celui-ci. Alors, quelqu'un at-il des indications sur ce qui me manque?
TIA,
FK
Je ne suis pas sûr de ce qui se passe ici, mais "nom" est-il vraiment une fonction, et pas seulement une simple chaîne? – Pointy
Oui, c'est-E4X est bizarre et se comporte différemment de la façon dont vous attendez un objet DOM ou JS normal. L'exemple fonctionne bien pour moi, sauf qu'il n'est pas clair d'où vient le 'n' dans 'node [n] .attributes()'. Bien sûr, si // manipule les valeurs modifie les attributs, il y a potentiellement un problème d'itération destructrice. – bobince
Ce qui précède est un pseudo-code. Mon cas d'utilisation (fonction d'analyse de xml JS dans Rhino utilisée dans une classe Java) est beaucoup plus complexe, j'ai donc résumé le problème. J'aurais dû le dire. Pardon. – FK82