mapper-php
mapper-php copied to clipboard
Set encoding for toXml
Example:
$model->toXml('utf-8');
Result:
<?xml version="1.0" encoding="utf-8"?><trains id="123"><train id="1"><name>Сапасан</name><departure>Москва</departure></train></trains>
Сurrently the result:
$model->toXml();
<?xml version="1.0"?><trains id="123"><train id="1"><name>Сапасан</name><departure>Москва</departure></train></trains>
I would have done it myself, but I can not find where to "dig."
Found: /src/Mapper/XmlModelMapper.php (version 2.2.16) line 270
$elementXml = '<'.$elementName.'></'.$elementName.'>';
replace
$elementXml = '<?xml version="1.0" encoding="utf-8"?><'.$elementName.'></'.$elementName.'>';
but how to pass the encoding if you do not need utf-8
Or:
/**
* @return string
*/
public function toXml() {
$mapper = new XmlModelMapper();
return $mapper->unmap($this);
}
replace
/**
* @return string
*/
public function toXml() {
$mapper = new XmlModelMapper();
return mb_convert_encoding($mapper->unmap($this), 'UTF-8', 'HTML-ENTITIES');
}
I may have a solution for this, let me check and get back to you.