Мне нужно проанализировать предоставленный извне XML, в котором есть атрибуты с разрывами строк. При использовании SimpleXML кажется, что разрывы строк теряются. Согласно другому вопросу о переполнении стека, разрывы строк должны быть действительными ( даже при том, что это далеко не идеально!) для XML.
Почему они потерялись? [edit] И как их сохранить? [/ edit]
Вот сценарий демонстрационного файла (обратите внимание, что когда разрывы строк не находятся в атрибуте, они сохраняются).
Файл PHP со встроенным XML
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<Rows>
<data Title='Data Title' Remarks='First line of the row.
Followed by the second line.
Even a third!' />
<data Title='Full Title' Remarks='None really'>First line of the row.
Followed by the second line.
Even a third!</data>
</Rows>
XML;
$xml = new SimpleXMLElement( $xml );
print '<pre>'; print_r($xml); print '</pre>';
Вывод из print_r
SimpleXMLElement Object
(
[data] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Title] => Data Title
[Remarks] => First line of the row. Followed by the second line. Even a third!
)
)
[1] => First line of the row.
Followed by the second line.
Even a third!
)
)