Как стать автором
Обновить

Комментарии 19

Пока с либой не разбирался, но на всякий случай плюсанул за топик и добавил в «Избранное». Работа с XML — важная штука, хорошо, если окажется удобной. Название у либы потешное :)
собственно, разработчики и не скрывают корни:
Библиотека qJerry — как раз такая попытка спроецировать на PHP подход, используемый в jQuery.
звучит интересно :) попробую, спасибо.

Как раз в данный момент нужно быстро написать несколько сервисов использующих xml данные в разных форматах :)
>> сделать работу с XML комфортнее, чем позволяют стандартные средства PHP
чем SimpleXML не угодил?
видимо, так же, как и jQuery для Prototype.
по-моему, чем больше библиотек, тем легче трудится на благо своего пуза ;)
Иногда он поглючивает и вообще ведет себя немножко неправильно. Недавно из за одной досадной ошибки пришлось перейти с него на DOM. Чуть менее удобнее, чуть больше кода, медленне, но словно в танке — надежно.
на bugs.php.net написали?
что вы делали?
Не писал.
Рекурсивно пробегался по дереву.
>Не писал.
зря
>Рекурсивно пробегался по дереву.
покажи в коде?
В коде к сожелению уже не покажу, давно это было, да и при добавлении новой фукнциональности, так что даже в svn-не нету. Так что только по логам из аси :)

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

Бежим по всему этому рекурсивно, но на примерно похожем куске кода:
<entity>
    // ...куча пропертей       
    <coordinate>
        <entity>
            <id>4544</id>
            <x>35</x>
            <y>51</y>
            // ... куча пропертей
        </entity>
    </coordinate>
</entity>


Но на выходе получаю мусор, начинаю разбираться, лезу внутрь, вардамплю сущность которую нужно сконвертить, и связку property => value, в итоге получаю:
сама сущность:
object(SimpleXMLElement)[62]
  public 'id' => string '4544' (length=4)
  public 'x' => string '35' (length=2)
  public 'y' => string '51' (length=2)
  ...


А при форейче по этому элементу получаем:
property:
command


value:
object(SimpleXMLElement)[62]
  public 'id' => string '4544' (length=4)
  public 'x' => string '35' (length=2)
  public 'y' => string '51' (length=2)
  ...


На обращение $entity->entity — ругалось, говорило, что никакого entity тут нет.
Оу, немного ошибся… не то скопипастил. В value — идентификатор объекта был другим, в данном случае 58. В каким и был идентификатор этой структуры в общем дереве при var_dump.
нада было пробнуть такое:
foreach ($entity->children() as $value) {}
должно было помочь
пробовал, по сути тоже самое получалось.
а SimpleXMLElement на свой заменить пробовал?
Нет, да и не собирался нагораживать из за этого логику, довольно быстро все переписал на DOMDocument и забыл SimpleXMLElement, со его тараканами как страшный сон.
jQuery, qJerry, TrotoPype, TooMools, SavaJcript, BireFug, XimpleSML

я запутался… :(
Интересно, а как эта библиотека переносит неймспейсы, XML-схемы и DTD
$this->content->children('content')->children('data')->children()->text()

тупняк =)
Есть ещё SimpleHTML, тоже сделана «в стиле» JQuery
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории