CDATA
у вас есть строка, содержащая HTML. Поэтому сначала рассматривайте его как текст, но поскольку этот текст предназначен для размещения HTML, проанализируйте этот текст, используя решение, подходящее для синтаксического анализа HTML.
Другими словами: использовать соответствующий инструмент (парсер HTML) для задания (разбор HTML).
Есть уже существующие решения для разбора HTML в PHP - напр. см ответы на эти вопросы:
- How to parse and process HTML with PHP?
- Robust, Mature HTML Parser for PHP.
Таким образом, вы уже можете получить строку HTML из своего XML. Теперь проанализируйте HTML и получите источник изображения, используя некоторые из упомянутых выше решений.
Использование preg_match()
для разбора HTML не является хорошей идеей, как это нужно будет очень сложно сделать простую вещь HTML анализатор подходит для.
-1 Нет, вам не следует использовать регулярное выражение, есть ** много ** более эффективных решений для синтаксического анализа HTML, чем регулярных выражений. – Tadeck
так, что это? – lvil
@lvil: вы можете увидеть ответы на этот вопрос: [Надежный, зрелый HTML-парсер для PHP] (http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php). Просто рассматривайте это как обычную строку, но строку, содержащую HTML. Так что вам нужно не регулярное выражение, оно должно быть действительно сложным, чтобы соответствовать всем случаям. Вам нужен HTML-парсер, как в вопросе, который я связал. – Tadeck