Imaginez que vous avez un fichier data.xml:données XML dans une seule variable en utilisant JQuery
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<item>value1</item>
<item>value2</item>
<item>value3</item>
</root>
Je suis en train de stocker toutes les config de données en une seule variable afin de l'utiliser dans mes .js code en utilisant ceci:
$(document).ready(function() {
'use strict';
jQuery.extend({
getValues: function(url) {
var result = null;
$.ajax({
url: url,
type: 'get',
dataType: 'xml',
async: false,
success: function(data) {
result = data;
}
});
return result;
}
});
results = $.getValues("data.xml");
console.log(results);
});
Si j'actualisez la page que je reçois dans des résultats variables d'un objet de document avec des champs comme URL, baseURI, corps ...
Si j'actualisez je reçois dans les résultats d'un #document objet avec le dat a du fichier data.xml:
<root>
<item>value1</item>
<item>value2</item>
<item>value3</item>
</root>
Ainsi, le type d'objet renvoyé change à chaque fois que quelqu'un se rend à l'URL.
J'ai deux questions à ce sujet:
Comment puis-je faire la valeur retournée toujours #document? (qui contient les données du fichier .xml)
Comment puis-je accéder à un élément à partir de #document?
J'ai essayé d'utiliser:
console.log(results.root.item);
console.log(results.find("item"));
Mais les deux me donnent des erreurs.
Peut-être y a-t-il un meilleur moyen de le faire (c'est-à-dire de lire les données xml dans une seule variable).
Des suggestions?
Vous avez raison, mais pour que cela fonctionne, j'ai dû supprimer la propriété "async". Maintenant, j'ai juste besoin de savoir comment accéder à un élément de la variable de données. – rfc1484
@ rfc1484 oh j'ai manqué l'option asynchrone. puisque vos données sont en XML, vous pouvez utiliser jquery pour accéder aux éléments: 'var xml = $ (data);' par exemple 'xml.find ('someelement'). attr ('someattribute');' – Andy