На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ANDLL
  
> Разрезать XML документ на части , Разрезать XML документ на части
    Господа!

    Проблем в следующем..

    Есть XML документ примерно следующего вида:

    Цитата

    <root>

    <command>
    <child>
    <!-- тут очень много потомков -->
    </child>

    </coomand>

    <result>
    <child>
    <!-- тут очень много потомков -->
    </child>

    </result>

    </root>


    Т.е. в документе есть два тэга command и result, у которых очень много разнях потомков в том числе с аттрибутами.

    Необходимо из такого документа вычленить тэги command и result со всеми потомками в виде других xml документов, т.е. на выходе должно получится примерно следующее

    Документ 1:

    Цитата

    <command>
    <child>
    <!-- тут очень много потомков -->
    </child>

    </coomand>




    Цитата


    <result>
    <child>
    <!-- тут очень много потомков -->
    </child>

    </result>



    Смотрел в сторону SAX,DOM, простого способа сделать такого действия не нашел, посмотрел в сторону XSLT, но он вроде не умеет возвращать результат преобразования в виде XML или умеет?
      А если не выпендриваться и регуляркой разрезать? ;)

      Добавлено
      Что-то вроде такого:

      ExpandedWrap disabled
        if (!preg_match('|(<command>.*</command>).*(<result>.*</result>)|i', $data))
        {
         echo 'error';
        }
         
        // Теперь у тебя в $data[1] первый кусок, а в $data[2] - второй.


      Собственно, ты не указал на каком языке тебе это надо...
        Цитата Eiden @
        А если не выпендриваться и регуляркой разрезать? ;)

        Добавлено
        Что-то вроде такого:

        ExpandedWrap disabled
          if (!preg_match('|(<command>.*</command>).*(<result>.*</result>)|si', $data))
          {
           echo 'error';
          }
           
          // Теперь у тебя в $data[1] первый кусок, а в $data[2] - второй.


        Собственно, ты не указал на каком языке тебе это надо...

        Регулярка вариант, но хочется все таки более правильный способ.

        Буду благодарен примеру на любых языках, исключая lisp, prolog итд
          Цитата cooluser @
          Регулярка вариант, но хочется все таки более правильный способ.

          Правильный способ это в зависимости от задачи. Если использовать парсеры, то это время. А регуляркой все же быстрее...
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0228 ]   [ 15 queries used ]   [ Generated: 27.04.24, 21:56 GMT ]