Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.154.171] |
|
Сообщ.
#1
,
|
|
|
Господа!
Проблем в следующем.. Есть 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 или умеет? |
Сообщ.
#2
,
|
|
|
А если не выпендриваться и регуляркой разрезать?
Добавлено Что-то вроде такого: if (!preg_match('|(<command>.*</command>).*(<result>.*</result>)|i', $data)) { echo 'error'; } // Теперь у тебя в $data[1] первый кусок, а в $data[2] - второй. Собственно, ты не указал на каком языке тебе это надо... |
Сообщ.
#3
,
|
|
|
Цитата Eiden @ А если не выпендриваться и регуляркой разрезать? Добавлено Что-то вроде такого: if (!preg_match('|(<command>.*</command>).*(<result>.*</result>)|si', $data)) { echo 'error'; } // Теперь у тебя в $data[1] первый кусок, а в $data[2] - второй. Собственно, ты не указал на каком языке тебе это надо... Регулярка вариант, но хочется все таки более правильный способ. Буду благодарен примеру на любых языках, исключая lisp, prolog итд |
Сообщ.
#4
,
|
|
|
Цитата cooluser @ Регулярка вариант, но хочется все таки более правильный способ. Правильный способ это в зависимости от задачи. Если использовать парсеры, то это время. А регуляркой все же быстрее... |