Перейти к содержимому


Выбрать шаблон и создать сайт

  • Закрытая тема Тема закрыта

Редактирование файлов XML

#1 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143
0

Отправлено 19 Август 2010 - 10:33

Сори, что пишу сюда - не набрал еще лимита сообщений на тему ;)
Возникла задача сделать подобие админки, через которую можно было бы управлять файлами .xml. Объясню подробнее. Файл .xml отвечает за управление флеш-галереей и имеет примерно такой вид:
<?xml version="1.0" encoding="utf-8"?>
<photos>
	<photo> <!-- Фото 1 -->
		<thumbnail>small_1.jpg</thumbnail>
		<filename>big_1.jpg</filename>
		<title>Photo 1</title>
		<description>Описание фото 1</description>
	</photo>
	<photo> <!-- Фото 2 -->
		<thumbnail>small_2.jpg</thumbnail>
		<filename>big_2.jpg</filename>
		<title>Photo 2</title>
		<description>Описание фото 2</description>
	</photo>
	 .....
</photos>
Т.е., блок одного фото состоит из 4-х пунктов - превью, фото, название, описание. Собственно интересует как можно управлять каждым конкретным блоком (редактировать, добавлять новый, удалять существующий), т.е., содержимым, находящимся внутри тэгов <photo></photo>.
Буду признателен за любую помощь по данному вопросу.

 

 

  • 0


#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Август 2010 - 11:17

matroskin8, Подобных универсальных решений в интернете не видел. У вас есть 3 варианта:

1) Поставить себе на сервер в админку файловый менеджер с редактором написанные на PHP, с помощью них править файлы XML ручками.
2) На основе одной из библиотек работы с XML в PHP, например simpleXML написать скрипт для редактирования ваших фотографий, это будет кустарный метод, но действенный... Чуть-чуть поменялась структура и метод уже не работает.
3) Опять же на основе одной из либ написать универсальный класс для редактирования XML, задача очень рутинная и тяжелая. Есть над чем поразмыслить и порешать кучу задач с подводными камнями. Но это того стоит. Тут придётся написать даже 2 класса, один редактирует XML по запросу, типа данные нужно поменять в том-то теге или изменить тот-то параметр, а второй класс должен описывать интерфейс пользователя, который и будет обращаться к первому классу.

Самый простой, кустарный метод... Структура известна, так что же не подумать над реализацией.
Поиск и замена в PHP присутствуют, так же в наличии регулярные выражения, всё реализуемо, стоит только голову поломать.
  • 0

#3 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 19 Август 2010 - 11:23

Я пока только вижу такой путь. Читать все содержимое файла с помощью SimpleXML, и потом перезаписывать его заново, с измененными данными. Либо, использовать preg_replace.
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Август 2010 - 11:33

matroskin8, почитал свою муть и понял, ведь simpleXML и DOMDocument уже предоставляют универсальные решения для редактирования.
Вот пример редактирования XML на основе DOMDocument
Вам остается только разработать интерфейс, с помощью которого вы будете редактировать элементы. С помощью этих либ можно доступиться к любому элементу и параметру в XML ;)

P.s.: Не забываем проверить наличие данных библиотек на вашем сервере.
  • 0

#5 matroskin8

matroskin8
    Topic Starter
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 19 Август 2010 - 11:53

Вроде simpleXML должно помочь.
Спасибо - буду разбираться ;)
  • 0


#6 matroskin8

matroskin8
    Topic Starter
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 19 Август 2010 - 17:40

Еще раз благодарю за подсказку в решении вопроса. Возможности simpleXML позволяют легко парсить .xml, используя их можно довольно легко получить массив из элементов и их параметров. А используя DOMDocument возможно уже и редактировать сам файл - не очень хорошо только то, что приходится полностью перезаписывать сам файл. Просьба пока не закрывать тему - возможно возникнут еще вопросы ;)
  • 0


#7 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 20 Август 2010 - 12:10

matroskin8, simpleXML так же позволяет редактировать файлы:
http://stackoverflow...-with-simplexml
  • 0

#8 matroskin8

matroskin8
    Topic Starter
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 20 Август 2010 - 14:35

Спс, увидел... но мне уже проще так, как я делаю, тем более, что уже, в общем-то, все почти сделал ;)
  • 0


#9 matroskin8

matroskin8
    Topic Starter
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 25 Август 2010 - 16:48

Всем спасибо за участие и помощь - админка готова, дополнительных вопросов не возникло ;) Тему можно закрывать.
  • 0


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru