Acentos em XML via API DOM!
Fala pessoal!!
Com base no curso do Wilker sobre API DOM, resolvi gerar um xml puchando dados de um bd.
Só que não que aparecem acentos complica tudo.
Se uso iso-8859-1 o xml é gerado até o momento em que aparece o primeiro acento, dai o script trava com os seguintes erros:
Warning: output conversion failed due to conv error in /home/ticarp/public_html/gerando_xml_bd_decode.php on line 38Warning: Bytes: 0xE3 0x3C 0x2F 0x64 in /home/ticarp/public_html/gerando_xml_bd_decode.php on line 38Warning: encoder erroroutput conversion failed due to conv error in /home/ticarp/public_html/gerando_xml_bd_decode.php on line 40Warning: Bytes: 0xE3 0x3C 0x2F 0x64 in /home/ticarp/public_html/gerando_xml_bd_decode.php on line 40Se uso uft-8 o xml é gerado por completo mas os acentos são ignorados. Ficando assim as palavras:
Amanh? (Amanhã), Jos? (José)...Esse é o código do script:
<?function createContato($document, $nome, $data, $email, $texto, $aniversario, $id) { $contato = $document->createElement("contato"); $nomeN = $document->createElement("nome", $nome); $dataN = $document->createElement("data", $data); $emailN = $document->createElement("email", $email); $textoN = $document->createElement("texto", $texto); $idN = $document->createElement("id", $id); $contato->setAttribute("aniversario", $aniversario); $contato->appendChild($nomeN); $contato->appendChild($dataN); $contato->appendChild($emailN); $contato->appendChild($textoN); $contato->appendChild($idN); return $contato; } $dom = new DOMDocument("1.0", "ISO-8859-1");$dom->preserveWhiteSpace = false;$dom->formatOutput = true;$root = $dom->createElement("teste");mysql_connect("localhost", "ticarp_admin", "465446");mysql_select_db("ticarp_banco");$xml = mysql_query("SELECT * FROM `xml`");while ($line = mysql_fetch_assoc($xml)) { $root->appendChild(createContato($dom, $line['nome'], $line['data'], $line['email'], $line['texto'], $line['aniversario'], $line['id']));}$dom->appendChild($root); $dom->save("contatos.xml");echo $dom->saveXML();?>Já li que se usasse iso-8859-1 e depois passasse um utf8_decode() sairia acentuado, mas o script trava antes conforme dito antes.
Conto com vcs!!! :D
Tiago.
Discussão (5)
Carregando comentários...