При написании конвертера xml файлов с разной структурой столкнулся с проблемой: в исходном xml в значениях секций содержится & получаю значения данных секций при помощи цикла. Новую xml формирую при помощи dom. При попытке создать новый узел при помощи createElement() получаю ошибку. PHP: $nKey = 1; global $iSdoi; $iSdoi = $DoiVolum; foreach ($references as $refArticle) { $refKey = 'ref-'.$iSdoi.'-'.$nKey; $citRef = $dom->createElement('citation'); $citRef->setAttribute("key", $refKey); $citList->appendChild($citRef); $unCit = $dom->createElement('unstructured_citation', $refArticle); $citRef->appendChild($unCit); $nKey++; } Как построить код что она не возникала? Пример исходной строки которая попадает в $refArticle: Код (Text): <reference>Arnold M. Letters // Collected and Arranged by G. W. E. Russell: in 2 vol. L.: Macmillan & Co., 1895. Vol. 1.</reference>
Нашел ответ: PHP: $nKey = 1; global $iSdoi; $iSdoi = $DoiVolum; foreach ($references as $refArticle) { $refArticle = htmlspecialchars($refArticle, ENT_XML1); //Преобразование спецсимволов $refKey = 'ref-'.$iSdoi.'-'.$nKey; $citRef = $dom->createElement('citation'); $citRef->setAttribute("key", $refKey); $citList->appendChild($citRef); $unCit = $dom->createElement('unstructured_citation', $refArticle); $citRef->appendChild($unCit); $nKey++; }