HI all,
Я использую jQuery для анализа моих XML-ответов.
У меня есть этот xml:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<client_id>185</client_id>
</response>
И я хочу получить значение "client_id".
HI all,
Я использую jQuery для анализа моих XML-ответов.
У меня есть этот xml:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<client_id>185</client_id>
</response>
И я хочу получить значение "client_id".
Сначала сделайте запрос для XML с $.get или, если хотите. Тогда:
clientID = $(myXML).find("client_id").text();
Чтобы исправить ожидаемый тип данных ответа в XML прямо в вашем запросе, установите для параметра dataType
значение "xml". Если вы этого не сделаете, jQuery использует заголовки ответов, чтобы угадать.
Поддерживается функция $.ajax()
как часть объекта options
, а также на $.get()
и $.post()
:
jQuery.ajax( options )
jQuery.get( url, data, callback, type )
jQuery.post( url, data, callback, type )
Итак, вы можете сделать это:
$.ajax({
type: 'GET',
url: "foo.aspx",
data: {
key: "value"
},
dataType: "xml",
success: function (xml){
var clientid = $(xml).find('client_id').first().text();
alert(clientid);
}
});
Обратите внимание, что с jQuery 1.5 вы можете использовать более приятную версию вышеуказанного запроса Ajax:
$.get("foo.aspx", {
key: "value"
})
.done(function (xml){
var clientid = $(xml).find('client_id').first().text();
alert(clientid);
});
Используйте что-то вроде этого:
$.ajax({ type: 'GET', url: 'test.xml', dataType: 'xml', success: function(xml){
$('response', xml).each(function() {alert($(this).find('client_id').text());});
}});
просто для дополнения, я использую $.get:
$.get($('file.xml').val(),{ } , doSomethingWithData);
function doSomethingWithData (data) {
$(data).find("marker").each(function() {
var marker = $(this);
alert(marker.attr("lat"));
});
Здесь tpicall используется request.responseXML - это данные в этом случае, и вы должны инкапсулировать его в $(данные) для работы (это заставляет меня сломать голову около 3 часов; S)
// alert(markerh);
}