Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Парсирнг xml файла (https://javascript.ru/forum/css-html/44309-parsirng-xml-fajjla.html)

snake 15.01.2014 09:13

Парсирнг xml файла
 
Добрый день.

Есть xml файл следующего вида:

<?xml version="1.0"?>
<history>
<tag name = "temp1">
<point time = "01/01/13 23:24:25">23.5</point>
<point time = "02/01/13 23:24:25">27.7</point>
<point time = "03/01/13 23:24:25">35.8</point>
</tag>
<tag name = "temp2">
<point time = "01/05/13 23:24:25">50.7</point>
<point time = "01/06/13 23:24:25">50.3</point>
</tag>
</history>

P.S <tag name = ""> и <point time = ""></point> может быть n-ое количество

Парсю xml файл следующим образом и получаю ответ виде таблицы:

<script>
document.write("<table border='1' cellpadding='0' cellspacing='0' border='0'");
document.write("<tr><td><div id='output'></div></td>");
document.write("<td><div id='outputs'></div></tr></td>");
document.write("</table>");
</script>

<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
dataType: "xml",
url: "data.xml",
success: function(xml){
$(xml).find("point").each(function(){
$("#output").append($(this).attr("time") + "<br />");
$("#outputs").append($(this).text() + "<br />");
});
}
});
});
</script>

Получаю ответ:
01/01/13 23:24:25 23.5
02/01/13 23:24:25 27.7
03/01/13 23:24:25 35.8
01/05/13 23:24:25 50.7
01/06/13 23:24:25 50.3

Вопрос как распарсить xml, чтобы получить ответ виде таблицы

01/01/13 23:24:25 temp1 23.5
02/01/13 23:24:25 temp1 27.7
03/01/13 23:24:25 temp1 35.8
01/05/13 23:24:25 temp2 50.7
01/06/13 23:24:25 temp2 50.3

Помогите написать правильно код.

krasovsky 15.01.2014 10:27

На вскидку:
success: function(xml){
var data = $(cml);
var table = $('<table>');

$(data,'point').each(function() {
var tag= $(this).parent();
var tr = $('<tr>');
tr.append('<td>'+$(this).attr('time')+'</td>');
tr.append('<td>'+tag.attr('name ')+'</td>');
tr.append('<td>'+$(this).text()+'</td>');
table.append(tr);

});
$('body').append(table)
}

snake 15.01.2014 11:14

Изменил код

<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
dataType: "xml",
url: "data.xml",
success: function(xml){
var data = $(xml);
var table = $('<table border="1" cellpadding="0" cellspacing="0" border="0">');


$(data,'point').each(function() {
var tag= $(this).parent();
var tr = $('<tr>');

tr.append('<td>'+$(this).attr('time')+'</td>');
tr.append('<td>'+tag.attr('name')+'</td>');
tr.append('<td>'+$(this).text()+'</td>');
table.append(tr);

});
$('body').append(table);
}
});
});
</script>

Выдает ответ:

undefined undefined 23.5 27.7 35.8 50.7 50.3

snake 15.01.2014 13:00

Спасибо KRASOVSKY все получилось, разобрался :D

krasovsky 15.01.2014 14:24

Ну и хорошо )


Часовой пояс GMT +3, время: 11:06.