Задать вопрос
@sawa4

SimpleXMLElement почему выдает char out of range?

Всем привет!
Может кто сталкивался
Данный код
$xmlSign = new SimpleXMLElement("<?xml version=\"1.0\"?><data></data>");
        $xml_user_info->addChild("$key",htmlspecialchars("$value"));
        return $xmlSign->asXML();

Выдаёт ошибку
SimpleXMLElement::asXML(): xmlEscapeEntities : char out of range

Данный код
$xmlSign = new SimpleXMLElement("<?xml version=\"1.0\"  encoding="UTF-8" standalone="yes"?><data></data>");
        $xml_user_info->addChild("$key",htmlspecialchars("$value"));
        return $xmlSign->asXML();

Выдаёт
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 877; An invalid XML character (Unicode: 0x1) was found in the element content of the document.

Что делаю не так? Куда смотреть, весь гугл переискал
Если изменить код добавив:
$xmlPlain = $xmlSign->asXML();
        return htmlentities($xmlPlain, ENT_QUOTES | ENT_IGNORE, "UTF-8");

Получаю
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 2; Reference is not allowed in prolog.

Если:
return html_entity_decode($xmlPlain, ENT_QUOTES | ENT_IGNORE, "UTF-8");
Получаю
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 877; An invalid XML character (Unicode: 0x1) was found in the element content of the document.
  • Вопрос задан
  • 228 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@krypt3r
Если я правильно понял
<?php
$xmlSign = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><data/>');
$xml_user_info = $xmlSign->addChild('user', 'admin');
echo $xmlSign->asXML();

На выходе:
<?xml version="1.0" encoding="UTF-8"?>
<data><user>admin</user></data>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы