Автор Тема: XML::Simple - борьба с сортировкой  (Прочитано 2960 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GunJah

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
XML::Simple - борьба с сортировкой
« : 11 Марта 2005, 14:55:50 »
Проблема в следующем:
При всасывании программой xml файла с помощью XMLin(); строится хэш в котором элементы xml перетасовываются неким образом, известным наверно только разработчикам модуля. Есть ли возможность сохранить последовательность елементов ?

Опция NoSort => 1 - действует только на XMLout(); убирая расстановку елементов по алфавиту, но не сохраняя первоначальный вид.

Опишу задачу, может кто-нить посоветует с помощью чего ее можно решить:
Есть xml конфигурационный файл, в котором описаны некие правила. Необходимо написать программу, которая обеспечила интерфей к данным правилам. То есть, могла бы дать возможность посмотреть данные заключенные в тегах, изменить их, удалить или добавить блок элементов называемый правилом.
Требования к xml файлу:
Нельзя менять имена тэгов и нельзя изменять порядок следования тегов (в этом то как раз и проблема :confused: )
в файле.

Оочень нужна помощь, откликнитесь кто может !!!

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
XML::Simple - борьба с сортировкой
« Ответ #1 : 11 Марта 2005, 15:24:18 »
Цитировать

=head2 My element order is getting jumbled up

If you read an XML file with XMLin() and then write it back out with
XMLout(), the order of the elements will likely be different.  (However, if
you read the file back in with XMLin() you\'ll get the same Perl data
structure).

The reordering happens because XML::Simple uses hashrefs to store your data
and Perl hashes do not really have any order.

It is possible that a future version of XML::Simple will use Tie::IxHash
to store the data in hashrefs which do retain the order.  However this will
not fix all cases of element order being lost.

If your application really is sensitive to element order, don\'t use
XML::Simple (and don\'t put order-sensitive values in attributes).


Т.е. XML::Simple тут тебе никак не поможет. Читай документацию к другим XML парсерам.
0 OK, 0:1

Оффлайн GunJah

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
XML::Simple - борьба с сортировкой
« Ответ #2 : 11 Марта 2005, 15:34:26 »
Ооочень жаль, в этом модуле удобная серфилка по xml. :(
Может кто-нить тогда подскажет какой модуль(-и) удобней(логичней) использовать для решения описанной мной выше задачи ?

 

Sitemap 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