наш клиент предоставил нам данные XML, которые необходимо обработать с помощью PHP. Они решили злоупотреблять атрибутами, используя их для больших кусков текста (содержащих разрывы строк). Синтаксический анализатор XML заменяет разрывы строк пробелами, чтобы сделать XML W3-совместимым.
Чтобы мы не потеряли разрывы строк, я хочу прочитать в файле строку, а затем перевести все разрывы строк между двойными кавычками с помощью
. Я думаю, мне нужно регулярное выражение для этого, но у меня возникают проблемы с его созданием.
На данный момент это мой тестовый код (PHP 5), использующий упреждающий просмотр и просмотр, но он не работает:
$xml = '<tag attribute="Header\r\rFirst paragraph.">\r</tag>';
$pattern = '/(?<=")([^"]+?)\r([^"]+?)(?=")/';
print_r( preg_replace($pattern, "$1 $2", $xml) );
Может кто-нибудь помочь мне понять это правильно? Должно быть легко для опытного мастера регулярных выражений:)