Erro na geração do xml quando existe caracteres especiais
Estou com este problema e estou sem saber o que resolver.
tenho uma função que preencher o xml para mim, porem quanto tento visualizar no chrome por exemplo ele me retorna a mensagem Below is a rendering of the page up to the first error e em baixo o conteudo do meu xml mas em forma de texto normal
quando vejo o codigo fonte da pagina eu consigo ver o xml formatado normal, o que pode ser isso?
Tentando analisar percebi que nesta linha 67 o conteudo é <Title>Copy®</Title> este $reg deveria ser o ® "simbolo de R". meu codigo fonte que gera o xml ja tem a codificação UTF-8, mas n ta resolvendo.
se gerar o xml de um arquvo que nao tenha este simbolo, gera perfeito
This page contains the following errors:error on line 67 at column 36: Entity 'reg' not definedBelow is a rendering of the page up to the first error. Below is a rendering of the page up to the first errofunction output_pretty_xml($mixed, $xml = false) {
este é a parte do codigo que monta o xml
if($xml === false) {
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><xbox status="' . $mixed['status'] . '" version="' . $mixed['version'] . '" />');
}
foreach($mixed as $key => $value) {
if(is_numeric($key)) {
$key = rtrim($xml->getName(), 's');
}
if(is_array($value)) {
output_pretty_xml($value, $xml->addChild($key));
} else {
$xml->addChild($key, $value);
}
}
$dom = dom_import_simplexml($xml)->ownerDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
return preg_replace_callback('/^( +)</m', function($a) {
return str_repeat(' ', intval(strlen($a[1]) / 2) * 4) . "<";
}, $dom->saveXML());
}
ou então uma forma de tratar isso na escrita, sera que tem como?
Eu uso isso abaixo para escrever.
$nome['Perfil'][$i]['Titulo'] = $this->clean($nome['Name']);
se for mais facil poderia rancar estes caracteres e deixar texto puro, teria como fazer?
Discussão (9)
Carregando comentários...