2010-08-03 5 views
0

Мне нужно сгенерировать XML-структуры «на лету» с помощью PHP. Я видел много разных способов и библиотек, но я хотел бы знать, что является наиболее эффективным.Создание XML из PHP

В общем, у меня есть массивы, и его содержимое должно быть возвращено как структура XML.

Заранее спасибо.

Поздравления! c.

+0

возможно дубликат [многомерный массив итераций] (http://stackoverflow.com/questions/2207599/multidimensional-array-iteration/2207739#2207739) - итератора подход может легко настраиваться для использования DOM или другого XML-библиотеки lib, если вам нужно преобразовать это в DOM-дерево, а не просто выводить XML. – Gordon

+0

эффективен для машины или программиста? – stillstanding

+0

нет общий * самый эффективный *. Это зависит от того, что вы хотите сделать с XML. Также см. Http://devzone.zend.com/article/2387 для обзора. – Gordon

ответ

2

Большинство КПД/цикл эффективны: возможно, если вы создадите строки вручную. Большинство разработчиков/время/ясность эффективны: возможно, SimpleXML.

+0

Это субъективно. Лично я нахожу SimpleXml болью по сравнению с тем, что мне дает DOM. – Gordon

+0

Зависит от необходимости использования пространств имен, атрибутов или проверки DOM. Для просто непроверенных тегов/значений сценариев SimpleXML на мой взгляд намного менее подробный, более точный, более легко читаемый, и я попробую некоторые тесты, я подозреваю, что это быстрее. Тем не менее, субъективно, я защищаю свое мнение здесь, а не факты :) – Wrikken

+0

Я признаю, что я склонен против SimpleXml. Для меня Simple in SimpleXml означает * отсутствие функциональности *, а не * простоту использования *. Я нахожу причудливую поддержку пространства имен, неявный интерфейс и недостаток подробностей, особенно раздражающих. DOM просто предлагает гораздо больше контроля над узлами - но я понимаю, что не всем это нужно/хочет :) – Gordon

0

Вы можете использовать этот класс Array2XML.

+1

Array2XML обычно намного (много!) Медленнее и интенсивнее процессора, чем SimpleXML или XMLWriter. У меня нет опыта работы с указанным классом, но предыдущий опыт с другим кодом заставил меня очень опасаться таких дизайнерских паттеров. – berkes

+1

@berkes: Согласен, я предложил это, потому что легче для noobs :) Хотя решение есть с OP, который он выбирает. Мы теперь предложили ему оба пути :) – Sarfraz