При попытке создать файл XML в PHP с использованием кодировки ISO-8859-1 оказывается, что знак & преобразуется в сущность HTML, что вызывает проблему с уже преобразованной строкой.
<CustomerDescription>The 'Sample' product</CustomerDescription>
Становится
<CustomerDescription>The &apos;Sample&apos; product</CustomerDescription>
Это читается нормально до тех пор, пока команды loadXML () или save ()
$xml = "<CustomerDescription>The 'Sample' product</CustomerDescription>";
$dom = new DOMDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->formatOutput = true;
$dom->loadXML($xml);
$dom->save($_SERVER['DOCUMENT_ROOT'].'/folder/'.$filename);