Как добавить условие "кроме"?

Регулярные выражения \ preg_replace

Необходимо обернуть содержимое внутри тега <param> в <![CDATA[...]], если уже не обернуто. Получилось реализовать без учета обертки, пожалуйста помогите сделать с условием "если внутри тега не обернуто в CDATA"

Код:

$string = '<param name="Глубина сиденья"><![CDATA[39.00]]></param><param name="Материал">Экокожа</param>';
echo preg_replace('{ <param \b [^>]* > \s* \K [^<]+ }xi', '<![CDATA[\0]]>', $string);

Результат:

<param name="Глубина сиденья"><![CDATA[<![CDATA[39.00]]>]]></param><param name="Материал"><![CDATA[Экокожа]]></param>

Ответы (1 шт):

Автор решения: Igor StackOverflow

Получилось сделать вот таким образом:

preg_replace('{ <param \b [^>]* > \K \w+ [^<]+ }xiu', '<![CDATA[\0]]>', $string);
→ Ссылка