Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Перенос значении в xml с помощью php

Ответить
Настройки темы
Разное - Перенос значении в xml с помощью php

Новый участник


Сообщения: 29
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: daradan
Дата: 25-10-2019
Описание: табуляции для читабельности
Помогите пожалуйста.
Как можно в xml файле сделать следующее с помощью php (или на другом языке):
В исходнике такие данные:
HTML код: Выделить весь код
<categories> <category id="0001">Категория1</category> <category id="0002">Категория2</category> <category id="0003" parentId="0001">Подкатегория1_Категорий1</category> <category id="0004" parentId="0002">Подкатегория2_Категорий2</category> ... </categories> <offers> <offer id="114400" available="true"> ... <categoryId>0001</categoryId> ... </offer> <offers> <offer id="114401" available="true"> ... <categoryId>0004</categoryId> ... </offer> ... </offers>

А хотелось бы, чтобы было так:
HTML код: Выделить весь код
<offers> <offer id="114400" available="true"> ... <categoryId>Категория1</categoryId> // вместо <categoryId>0001</categoryId> ... </offer> <offer id="114401" available="true"> ... <categoryId>Категория2</categoryId> /// вместо <categoryId>0004</categoryId>, значение берет из parentId="0002", т.к. он является родителем <parentId>Подкатегория2_Категорий2</parentId> // Добавить <parentId>, т.к. имеется в <category id="0004" parentId="0002"> и добавить значение ... </offer> ... </offers>

Т.е. хотелось, чтобы значения категории находились внутри offers
Спасибо.

Отправлено: 18:51, 23-10-2019

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4462
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


daradan, какой бы нибудь чуть более "развесистый файлик" для подумать.
Сходу решение не напишу, но подумаю.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:33, 31-10-2019 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 29
Благодарности: 2

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xml test.xml
(4.5 Kb, 1 просмотров)

Цитата lxa85:
какой бы нибудь чуть более "развесистый файлик" для подумать. »
Спасибо. Загрузил примерный файл для понимания. Внутри в комментариях указал более подробно.
Пока для себя временным решением сделал так:
PHP код: Выделить весь код

<?php
$xmlStr 
file_get_contents('source.xml');
$patterns = array();
$patterns[0] = '~<categoryId>1093</categoryId>~';
$patterns[1] = '~<categoryId>1097</categoryId>~';
$patterns[2] = '~<categoryId>1103</categoryId>~';
$patterns[3] = '~<categoryId>1095</categoryId>~';
$patterns[4] = '~<categoryId>1096</categoryId>~';
$patterns[5] = '~<categoryId>1090</categoryId>~';
$patterns[6] = '~<categoryId>1098</categoryId>~';
$patterns[7] = '~<categoryId>1099</categoryId>~';
$replacements = array();
$replacements[0] = "<categoryId>Машинки</categoryId>";
$replacements[1] = "<categoryId>Коляски</categoryId>";
$replacements[2] = "<categoryId>Коляски</categoryId>\n                <subcategoryId>Для прогулки</subcategoryId>";
$replacements[3] = "<categoryId>Коляски</categoryId>\n                <subcategoryId>3 в одном</subcategoryId>";
$replacements[4] = "<categoryId>Конструкторы</categoryId>";
$replacements[5] = "<categoryId>Конструкторы</categoryId>\n                <subcategoryId>LEGO</subcategoryId>";
$replacements[6] = "<categoryId>Конструкторы</categoryId>\n                <subcategoryId>LEGO</subcategoryId>\n                <subsubcategoryId>DUPLO</subsubcategoryId>";
$replacements[7] = "<categoryId>Конструкторы</categoryId>\n                <subcategoryId>LEGO</subcategoryId>\n                <subsubcategoryId>City</subsubcategoryId>";
$str preg_replace($patterns$replacements$xmlStr);
file_put_contents('result.xml'$strLOCK_EX);
?>

и т.д.
Но там примерно 300 строк, каждую уже вручную сделал, но хотелось бы автоматизировать процесс и более грамотно все организовать, чтобы минимизировать человеческий фактор...

Последний раз редактировалось daradan, 01-11-2019 в 06:34.


Отправлено: 21:27, 31-10-2019 | #3


Аватара для Antigua

Новый участник


Сообщения: 9
Благодарности: 1

Профиль | Отправить PM | Цитировать


Мне вообще сложно работать с php, поэтому по нему не могу ничего путевого подсказать, а вот на Питоне другое дело. Смотри, есть ветка кодеров, где рассматривается вопрос обработки XML в Python https://myht.ru/question/337-obrabotka-xml-v-python Покури её, как говорится, войдешь быстро в курс дела. Если что будет не понятно, то пиши, я подскажу. С php не дружу, а вот по Питону подскажу, что хочешь. В меру своих скромных познаний, конечно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:35, 03-12-2019 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Перенос значении в xml с помощью php

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Получение значении из XML и сохранение в txt sector2484 Скриптовые языки администрирования Windows 16 01-10-2018 12:42
Разное - PHP | вытащить XML Darkar25 Программирование и базы данных 11 10-08-2018 09:22
Разное - xml+xsl+php MAGBORI Программирование и базы данных 2 28-02-2011 09:18
PHP и XML | Обработка неалфавитных символов Coutty Вебмастеру 6 17-12-2008 10:42
Парсет XML для PHP Irlon Вебмастеру 21 22-06-2006 15:08




 
Переход