使用JQuery将XML数据转换为单个变量
假设您有一个data.xml文件:使用JQuery将XML数据转换为单个变量,jquery,xml,Jquery,Xml,假设您有一个data.xml文件: <?xml version="1.0" encoding="UTF-8" ?> <root> <item>value1</item> <item>value2</item> <item>value3</item> </root> 如果我刷新页面,我会得到一个带有URL、baseURI、body等字段的文档对象 如果我再次刷新,我
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<item>value1</item>
<item>value2</item>
<item>value3</item>
</root>
如果我刷新页面,我会得到一个带有URL、baseURI、body等字段的文档对象
如果我再次刷新,我将得到一个文档对象,其中包含data.xml中的数据:
<root>
<item>value1</item>
<item>value2</item>
<item>value3</item>
</root>
但两者都给了我错误
也许有更好的方法可以做到这一点,这意味着将xml数据读入单个变量
有什么建议吗?您可以通过以下方式选择xml标记:
success: function(data) {
parser(data);
}
function parser(data) {
...
}
您将在ajax请求完成之前返回结果。 您必须等待ajax返回,然后调用回调函数:
$(document).ready(function() {
'use strict';
jQuery.extend({
getValues: function(url, callback) {
var result = null;
$.ajax({
url: url,
type: 'get',
dataType: 'xml',
async: false,
success: function(data) {
callback.call(this, data);
}
});
}
});
$.getValues("data.xml",function(data){
console.log(data);
});
});
但我想在返回xml后,在ajax成功函数之外选择xml标记。@rfc1484您可以创建一个函数并将ajax数据传递给它。您是对的,但为了使其工作,我必须删除async属性。现在我只需要知道如何从数据变量访问元素。@rfc1484哦,我错过了异步选项。因为您的数据是xml,所以可以使用常规jquery访问元素:var xml=$data;例如xml.find'someelement.attr'someattribute';
success: function(data) {
parser(data);
}
function parser(data) {
...
}
$(document).ready(function() {
'use strict';
jQuery.extend({
getValues: function(url, callback) {
var result = null;
$.ajax({
url: url,
type: 'get',
dataType: 'xml',
async: false,
success: function(data) {
callback.call(this, data);
}
});
}
});
$.getValues("data.xml",function(data){
console.log(data);
});
});