У меня есть простая строка XML, которая более или менее всегда одинакова. Я бы предпочел не использовать синтаксический анализатор XML для такого небольшого фрагмента кода, и я бы мог помочь Regexp.Ruby Regexp для извлечения определенных элементов в XML-строке
Строка XML выглядит следующим образом:
<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.extendedPing</methodName>
<params>
<param>
<value>Official Google Blog</value>
</param>
<param>
<value>http://googleblog.blogspot.com/</value>
</param>
<param>
<value>http://googleblog.blogspot.com/</value>
</param>
<param>
<value>http://googleblog.blogspot.com/atom.xml</value>
</param>
</params>
</methodCall>
Я хочу, чтобы извлечь значения каждых пары (и поддержание порядка).
я придумал /<value>(.*)<\/value>/xi
, но это просто macthes самое первое значение:/
Пожалуйста, прекратите распространение этого мема: разбор XML с регулярным выражением не является «печально трудным и подверженным ошибкам», это просто невозможно. И не невозможно в смысле «невозможно получить право», но доказуемо математически невозможно.На самом деле, почти каждый студент CS на всей планете в свое время в течение своей карьеры доказал эту невозможность в каком-то задании на домашнюю работу или другом. –
@ Йорг - Боюсь, что мы с тобой говорим о двух совершенно разных вещах. Математическая невозможность сильно отличается от реальной невозможности (из-за отсутствия лучшей фразы). Невозможно использовать регулярные выражения для XML? Нет, конечно, нет - вполне возможно использовать регулярные выражения для взлома решения, которое будет работать большую часть времени. Я понимаю вашу точку зрения (и соглашаюсь с вами в принципе), но она действительно не имеет большого значения для практического обсуждения, подобного этому. –