Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для Bigeron
4 / 4 / 0
Регистрация: 01.02.2013
Сообщений: 139

Некорректная структура XML документа

20.11.2017, 01:08. Показов 1033. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Никак не могу понять, в чем дело ...

Делаю запрос в базу данных, результаты хочу записать в виде XML документа ... Но почему структура так меняется, никак не могу понять ...


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
foreach ($q->GetResult() as $row) {
    
    $news = $xmlDoc->createElement('news');
    $root->appendChild($news);
    
    $news_id = $xmlDoc->createElement('id', $row['id']);
    $news->appendChild($news_id);
    
    $news_category_id = $xmlDoc->createElement('category_id', $row['category_id']);
    $news->appendChild($news_category_id);
    
    $news_title_ru = $xmlDoc->createElement('title_ru', $row['title_ru']);
    $news->appendChild($news_title_ru);
    
    $news_title_ru_short = $xmlDoc->createElement('title_ru_short', $row['title_ru_short']);
    $news->appendChild($news_title_ru_short);
    
    $news_message_ru = $xmlDoc->createElement('message_ru', $row['message_ru']);
    $news->appendChild($news_message_ru);
    
    $news_title_en = $xmlDoc->createElement('title_en', $row['title_en']);
    $news->appendChild($news_title_en);
    
    $news_title_en_short = $xmlDoc->createElement('title_en_short', $row['title_en_short']);
    $news->appendChild($news_title_en_short);
    
    $news_message_en = $xmlDoc->createElement('message_en', $row['message_en']);
    $news->appendChild($news_message_en);
    
    $news_post_date = $xmlDoc->createElement('post_date', $row['post_date']);
    $news->appendChild($news_post_date);
    
    $news_rating = $xmlDoc->createElement('rating', $row['rating']);
    $news->appendChild($news_rating);
    
 
}


XML
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
<news_block>
    <news>
        <id>5</id>
        <category_id>1</category_id>
        <title_ru>5</title_ru>
        <title_ru_short>5</title_ru_short>
        <message_ru>5</message_ru>
        <title_en>
            <title_en_short>
                <message_en>
                    <post_date>2017-11-19 19:43:39</post_date>
                    <rating>4</rating>
                </message_en>
            </title_en_short>
        </title_en>
    </news>
    <news>
        <id>4</id>
        <category_id>1</category_id>
        <title_ru>4</title_ru>
        <title_ru_short>4</title_ru_short>
        <message_ru>4</message_ru>
        <title_en>
            <title_en_short>
                <message_en>
                    <post_date>2017-11-19 19:43:22</post_date>
                    <rating>3</rating>
                </message_en>
            </title_en_short>
        </title_en>
    </news>
    <news>
        <id>3</id>
        <category_id>1</category_id>
        <title_ru>11</title_ru>
        <title_ru_short>22</title_ru_short>
        <message_ru>333</message_ru>
        <title_en>
            <title_en_short>
                <message_en>
                    <post_date>2017-11-19 19:42:56</post_date>
                    <rating>5.2</rating>
                </message_en>
            </title_en_short>
        </title_en>
    </news>
</news_block>
Почему элемент title_en_short является дочерним для title_en ... Планировалось, чтобы они на одном уровне были бы ...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2017, 01:08
Ответы с готовыми решениями:

Обработка и изъятие данных из XML документа средствами PHP
Объясните работу обработки XML документа с помощью PHP Например: &lt;author&gt;А.С. Пушкин&lt;/author&gt; И мне надо взять это имя из...

Получаю xml по url, как сохранить содержимое в новый xml файл, только чтобы структура не нарушилась?
Когда делаю так, структура нарушается WebRequest request =...

Создание документа XML через LINQ-to-XML
как создать новый документ xml через LINQ-to-xml XDocument doc =new XDocument(&quot;name.xml&quot;,Encoding.UTF8); ...

7
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
20.11.2017, 01:13
Хотелось бы увидеть минимальный работоспособный код, воспроизводящий проблему
0
 Аватар для Bigeron
4 / 4 / 0
Регистрация: 01.02.2013
Сообщений: 139
20.11.2017, 01:17  [ТС]
Jewbacabra, т.е. хочешь сказать, что нет никаких подводных камней в том случаи, если $value - пусто ...

Code
1
public DOMElement DOMDocument::createElement ( string $name [, string $value ] )
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
20.11.2017, 01:26
Bigeron, я ничего не хочу сказать. Я хочу увидеть код который не работает и который смогу выполнить
0
 Аватар для Bigeron
4 / 4 / 0
Регистрация: 01.02.2013
Сообщений: 139
20.11.2017, 01:38  [ТС]
Jewbacabra, Странно ... Именно в браузере не правильно отображается ...

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
        $xmlDoc = new DomDocument('1.0', 'utf-8');      // create a new DOM object
        $root = $xmlDoc->createElement('news_block');   // create the root element
        $xmlDoc->appendChild($root);            // adds the root element in the DOM object
        
        $news = $xmlDoc->createElement('news');
        $root->appendChild($news);
        
        $news_message_en = $xmlDoc->createElement('id', '');
        $news->appendChild($news_message_en);
        
        $news_message_en = $xmlDoc->createElement('category', '');
        $news->appendChild($news_message_en);
        
        
        
        echo $xmlDoc->saveXML();
 
 
 
?>

А если вместо

PHP
1
echo $xmlDoc->saveXML();
сохранять в файл, то там структура верная ...
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
20.11.2017, 01:46
Что-то это не очень похоже на воспроизведение проблемы

Code
1
2
<?xml version="1.0" encoding="utf-8"?>
<news_block><news><id/><category/></news></news_block>
Такой xml я и расчитывал получить
0
 Аватар для Bigeron
4 / 4 / 0
Регистрация: 01.02.2013
Сообщений: 139
21.11.2017, 00:57  [ТС]
Jewbacabra, я на такой результат тоже рассчитывал ...

Вот скриншот консоли браузера
Миниатюры
Некорректная структура XML документа  
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
21.11.2017, 09:19
Bigeron, смотри исходный код страницы, а не консоль, там будет необработанный ответ. Чтоьы браузер корректно обрабатывал xml в заголовках е у следует сообщить что это xml
PHP
1
header('Content-Type: text/xml');
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2017, 09:19
Помогаю со студенческими работами здесь

Некорректная десериализация XML
Сериализуется класс, в котором есть поле List&lt;Record&gt;. Структура Record имеет вид: public struct Record { public string...

Создание XML документа по XML Shema
Здравствуйте нужна помощь в составлении XML документа по данной схеме: &lt;?xml version=&quot;1.0&quot;...

Некорректная конвертация в байтовый массив архивированных данных XML
Пишу клиентскую программу, которая берет данные из БД, конвертирует в Xml-ку, архивирует Zip'ом, превращает в байтовый массив и отправляет...

Структура документа
Текстовый процессор : Структура документа. Как я правильно понял речь идёт о word, с многими вопросами справился, но не могу понять, что...

Структура документа не понятна
Вот есть следующий кусочек кода. Он выводит данные в виде таблицы из базы данных. В каждой строчке есть форма. Не понятно почему...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. На мобильном - сканируйте QR-код. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru