Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
 Аватар для Kazachek
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405

Распарсить ответ в виде XML и создать таблицу

11.05.2015, 14:29. Показов 1918. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день. Отправляя Ajax запрос получаю XML в ответ. Мне необходимо расспарсить его и создать таблицу. А таблицу занести в определенный DIV. С циклом никогда не работал, по этому не получается у меня. Если есть возможность помогите пожалуйста.

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<<<XML
<?xml version='1.0' standalone='yes'?>
<questions>
 <question>
  <title>Вопрос 1</title>
  <variants>
   <variant>
    <var_text>Вариант1</var_text>
   </variant>
   <variant>
    <var_text>Вариант2</var_text>
   </variant>
  </variants>
 </question>
</questions>
XML;
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<Table>
    <tr>
        <td>
            Вариант1
       </td>
     </tr>
      <tr>
        <td>
            Вариант2
       </td>
     </tr>
 
</table>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.05.2015, 14:29
Ответы с готовыми решениями:

Распарсить ответ от сервера в виде XML
Получаю от сервера xml документ типа: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt; &lt;response&gt; &lt;count&gt;1744&lt;/count&gt; ...

Распарсить ответ в виде html
Привет всем. Есть сайт , я его спарсил вот так : public static string getPage(string pageCount) { WebRequest...

трудности при распарсить ответ xml
есть ответ xml в нем есть значения которые я хочу обьеденить в дату DeathDateDay = &quot;21&quot; DeathDateMonth =...

8
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
11.05.2015, 15:34
Kazachek, пример в песочнице
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
    url: 'path/to/handler.php', // путь к обработчику
    type: 'POST', // или GET
    dataType: 'xml', // тип ожидаемых данных
    data: {some_key: some_val}, // передаваемые данные (если нужно)
    success: function(data){
        var lines = $('variant',data).map(function(i, el){
            return $('<tr />').append($('<td />', {text: $('var_text',el).text()}));
        }).get();
        $('<table />', {html: lines}).appendTo('body');
    }
});
1
312 / 106 / 69
Регистрация: 18.04.2015
Сообщений: 346
11.05.2015, 15:39
Лучший ответ Сообщение было отмечено Kazachek как решение

Решение

Не знал куда заголовок вам, строчкой выше вариантов добавил.
HTML5
1
2
3
<div id="table_xml">
 
</div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    <script> $(document).ready(function () {
 
    $.ajax({
 
        type: "GET",
 
        url: " main.xml",
 
        dataType: "xml",
 
        success: xmlParser
 
    });
 
});
 
function xmlParser(xml) {
 
 
 
    $(xml).find("question").each(function () {
$("#table_xml").append('<table></table>');
     $("#table_xml table").append('<tr><td>' + $(this).find("title").text() + '</td></tr>');
             $(this).find("variant").each(function(){
              $("#table_xml table").append('<tr><td>' + $(this).find("var_text").text() + '</td></tr>');
             
             });
 
       
 
    });
 
}
</script>
1
 Аватар для Kazachek
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
11.05.2015, 17:38  [ТС]
Lazy_Den, Armi, друзья огромное спасибо, вы реально меня спасли, извините за позднее подтверждение, у меня инет пропал.

А можно ли как то к каждому <TD> добавить обработчик клика, и при нажатии отправить значение обработчику, а от туда получить новый xml?
Заранее благодарю за содействие.
0
312 / 106 / 69
Регистрация: 18.04.2015
Сообщений: 346
11.05.2015, 18:01
JavaScript
1
2
3
$("#table_xml").on("click","table td", function(){
alert($(this).text()); //выведет сообщение с содержимым ячейки на которую нажали
});
1
 Аватар для Kazachek
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
12.05.2015, 12:47  [ТС]
Armi,
Огромное спасибо за помощь.
Можете посмотреть, обработчик который должен генерить xml файл не отвечает на ajax запрос. Можете указать на ошибку? Прошу прощения за навязчивость. Своими силами не получается((

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
include('connectdb.php');
mysql_query("SET NAMES 'utf8'");
switch ($_REQUEST['action']) {
    case 'answer_request':
        $ans=$_POST['ansver'];
        if($ans==1){
            $query = mysql_query("SELECT * FROM  `questions_history` WHERE STATUS =1 AND NOW() BETWEEN stime AND etime and id=2");
                
 
 
            $nachalo = "<<<XML
                            <?xml version='1.0' standalone='yes'?>
                            <questions>
                             <question>
                              <title>Вопрос 1</title>
                              <variants>";
 
 
 
            while($row = mysql_fetch_array($query)){
                $qtext=$row['text'];
                $qid=$row['id'];
                $query2 = mysql_query("SELECT * FROM  `q_variants` WHERE q_id =2 AND NOW()  BETWEEN stime AND etime AND qvar_stat =1 ORDER BY position ASC");
                    while($row2 = mysql_fetch_array($query2)){
                    $qtext=$row2['qvar_text'];
                    $qvar_id=$row2['id'];
                        echo "<variant>
                                <var_text>$qtext</var_text>
                              </variant>";
                    
                    };
                    
                    
            };
 
 
 
 
            echo "  </variants>
                     </question>
                    </questions>
                    XML;";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        }else{
            echo $ans;
            #echo "other";
        }
        break;
    default:
       echo "error";
   }
 
?>
Добавлено через 11 минут
Оказывается он генерирует, но парсер его не видит, возможно дело в том что он возвращает ответ ввиде строки а не xml документа?

Добавлено через 23 минуты
Цитата Сообщение от Armi Посмотреть сообщение
<script> $(document).ready(function () {
$.ajax({
type: "GET",
url: " main.xml",
dataType: "xml",
success: xmlParser()
});
});
function xmlParser(xml) {
$(xml).find("question").each(function () {
$("#table_xml").append('<table></table>');
* * *$("#table_xml table").append('<tr><td>' + $(this).find("title").text() + '</td></tr>');
* * * * * * *$(this).find("variant").each(function() {
* * * * * * * $("#table_xml table").append('<tr><td>' + $(this).find("var_text").text() + '</td></tr>');
});
});
}
</script>
Поставил скобки потом функция заработала, но он не доходит до парсинга, вот эта часть не работает
Цитата Сообщение от Armi Посмотреть сообщение
$(xml).find("question").each(function () {
$("#table_xml").append('<table></table>');
* * *$("#table_xml table").append('<tr><td>' + $(this).find("title").text() + '</td></tr>');
* * * * * * *$(this).find("variant").each(function() {
* * * * * * * $("#table_xml table").append('<tr><td>' + $(this).find("var_text").text() + '</td></tr>');
});
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
12.05.2015, 21:02
В начале php файда отправьте заголовок что это xml
PHP
1
header("Content-type: text/xml");
1
 Аватар для Kazachek
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
13.05.2015, 08:10  [ТС]
Цитата Сообщение от alpex Посмотреть сообщение
В начале php файда отправьте заголовок что это xml
Код PHP
1
header("Content-type: text/xml");
не помогло((

Добавлено через 9 часов 36 минут
Цитата Сообщение от Kazachek Посмотреть сообщение
не помогло((
Извиняюсь, документ был сохранен в другой кодировке. Сохранил в UTF-8 без BOM и стал возвращать xml.
Но все же указанная часть функции не срабатывает((. Помогите пожалуйста.

JavaScript
1
2
3
4
5
6
7
8
9
$(xml).find("question").each(function () {
                    console.log('Create table');
                    $("#table_xml").append('<table></table>');
                    $("#table_xml table").append('<tr><td>' + $(this).find("title").text() + '</td></tr>');
                    $(this).find("variant").each(function(){
                        $("#table_xml table").append('<tr><td>' + $(this).find("var_text").text() + '</td></tr>');
                 
                    });
                });
Добавлено через 42 минуты
Заработал, ошибка была на моей стороне извиняюсь

Добавлено через 38 минут
Заработал, ошибка была на моей стороне извиняюсь



Цитата Сообщение от Armi Посмотреть сообщение
$("#table_xml").on("click","table td", function(){
alert($(this).text()); //выведет сообщение с содержимым ячейки на которую нажали
});
Вот это куда именно должен вставить? Куда бы не ставил выдает ошибку((
Есть ли другой вариант обработки клика по TD таблицы?
0
312 / 106 / 69
Регистрация: 18.04.2015
Сообщений: 346
14.05.2015, 21:22
Цитата Сообщение от Kazachek Посмотреть сообщение
Вот это куда именно должен вставить? Куда бы не ставил выдает ошибку((
Есть ли другой вариант обработки клика по TD таблицы?
Странно. Убедитесь что оно находиться внутри ready. И что есть блок div с id=table_xml.
Пример в песочнице - https://jsfiddle.net/m4mgoj0h/

P.S. Меня не было на форуме, бесполезно писать в личку, если я тут, и так отвечу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2015, 21:22
Помогаю со студенческими работами здесь

Работа с xml: распарсить ответ от сервера и поместить значения в массивы
У меня есть ответ от сервера подобный этому: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;response list=&quot;true&quot;&gt; &lt;user&gt; ...

Объединить файлы xml в один и распарсить итог в таблицу
Задача - это некая идея фикс для меня, тем более очень для меня актуальна (нависает прям на до мной)) Поэтому решил попробовать решить ее...

Распарсить с помощью Json.Net приходящий ответ в виде JSON
Нужна помощь с json {&quot;success&quot;:true, &quot;rgInventory&quot;:{ &quot;1025429056&quot;:{ &quot;id&quot;:&quot;1025429056&quot;, &quot;classid&quot;:&quot;310779217&quot;,...

WinINET. Получить ответ от сайта в виде XML
Код ниже скачивает страницу с сайта и проблем нет! Но отправить этот запрос на сайт...

Как правильно принять ответ в виде XML и привести к читаемому виду
Начал изучать ajax в связке jquеry, вот пытаюсь сделать простой пример, есть 3 текстовых поля, хочу по кнопке получить сумму чисел. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru