Парсер XML в PHP понимающий включение внешних файлов через Entity

kewluser

Новичок
Парсер XML в PHP понимающий включение внешних файлов через Entity

Господа!

Нужен парсер XML, умеющий эффективно обрабатывать XML документы, которые ссылаются на другие XML документы используя механизм сущностей (Entity).

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

Достаточно будет просто сссылки на соответствющие функции/библиотеки, эффетивно решаюшие описанные выше задачи.

-~{}~ 22.03.06 10:28:

Неужели никто ничего по этому вопросу не знает? Или проблема сформулирована не ясно?
 

ViJu

Новичок
Re: Парсер XML в PHP понимающий включение внешних файлов через Entity

Результатом работы должен быть ассоциативный массив представляющий дерево документов, полученных путем включения всех Entity в главный.
придется писать самому - неудачная постановка задачи

хотел было посоветовать
http://www.php.net/manual/en/ref.simplexml.php,
но не поможет
тебе скорее не XML парсер, а DTD парсер нужен

DTD это не XML,
использовал бы лучше XInclude для включения внешнего контента и проблем меньше было бы

вот тебе два ценных совета :)
 

kewluser

Новичок
За советы спасибо.

Можно пару слов чем отличается DTD от XML и почему мне нужен именно парсер DTD? Я так понимаю DTD это схема описания XML

Проблему решил так, с использованием xml_parser_create()
Работаем в два прохода:
1. Подставляем в документ внешние сущности (если есть)
2. Парсим результат как и раньше
 

ViJu

Новичок
Извини добавить мне особо нечего,
вроде все написал,

Уже несколько лет как появилась широкая поддержка XMLSchema XInclude и окончательный переход от использования DTD к XMLSchema это вопрос времени

замени вызовы сущностей на вызовы xinclude (забей на DTD)

если не собираешся, то попробуй разобрать DTD с помощью
http://pear.php.net/package/XML_DTD
 

dimgel

Новичок
1. Подставляем в документ внешние сущности (если есть)
Вообще говоря это нехорошо. А если сущность будет внутри CDATA, или ещё каким-то образом экранирована? Да ещё в мультиязыковом документе? Имхо парсить нужно только парсером, и работать через DOM; надежнее и безопаснее будет.

Во всём остальном согласен с ViJu.
 

chameleon

Новичок
Нужен парсер XML, умеющий эффективно обрабатывать XML документы
версию php уже догадаешься назвать?
для 5-ки попробуй DOMDocument->resolveExternals и после SimpleXML'ем в массив.
 
Сверху