Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Preg Mach из xml


Автор: iAnthony 28.2.2009, 21:12
Добрый вечер!

Помоги, пожалуйста, разобраться с регулярным выражением.

Есть xml:
$temp = 
Код

<data id="A12345">
   <item1>Text</item1>
   <item2>Text</item2>
   <item3>Text</item3>
   <item4>Text</item4>
   <item5>Text</item5>
</data>
<data id="F54321">
   <item1>Text</item1>
   <item2>Text</item2>
   <item3>Text</item3>
   <item4>Text</item4>
   <item5>Text</item5>
</data>

И пытаюсь регулярными выражениями выцепить данные из тегов.
$pattern = "/<data id=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)/i";
preg_match_all($pattern, $temp, $data, PREG_SET_ORDER);

Все замечательно работает, но решил убрать из результатов id, преобразовав паттерн таким образом:
$pattern = "/<data [^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)/i";

и на этом работоспособность кода пропала - никаких результатов.
А почему? Что-то пока не понял, вроде по логике теперь ведь просто из результата должен исключиться id, вернее его значение.

Буду премного благодарен за помощь!

Автор: skyboy 28.2.2009, 21:22
вопрос концепутальный: почему не работать с http://ua.php.net/manual/ru/refs.xml.php в PHP механизмов для работы с XML?

Автор: iAnthony 28.2.2009, 23:08
Я понимаю, что можно использовать domDocument, или xml_parser, или какой-нибудь simplexml. Но хочется с регулярными выражениями потеснее подружиться, да и если с ними разобраться, то решение будет ни чуть не сложнее, чем использовать стандартные механизмы работы с XML.

Автор: enof 1.3.2009, 12:46
iAnthony, Чтобы разобраться с регулярными выражениями, почитайте http://softtime.ru/info/fridl.php.

Автор: iAnthony 1.3.2009, 12:52
Прошу прощения, уважаемые коллеги!
У меня после регулярного выражения шли проверки по определенным индексам полученных данных. Соответственно убрав одно значение из результата, индексы будут другие, поэтому  у меня и результат пропадал.
Поутру на код смотришь совсем другими глазами  smile 

enof, спасибо за ссылку на книгу, обязательно почитаю, лишним точно не будет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)