Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte, tenho uma página que vai exibir notícias de outros sites, meu sistema pega a primeira noticia de 4 sites diferentes pra fazer isso eu acessava 4 XMLs de cada site e pegava o primeiro NO... meu problema era que eu não conseguia ordenar essas noticias, então para q isso fosse possível criei um terceiro XML onde coloquei cada um desses NOS e ae sim poderia ordena-los... porém depois que fiz isso minhas acentuações começaram a CAGAR, já testei os ecodings desse terceiro XML tanto ISO quanto UTF e nada, já testei o econding do HTML e nada, já testei as funções utf8_decode, utf8_encode e nada... sendo q antes desse terceiro XML não existia esse problema...
e essa é minha questão, como resolvo isso ?
// Estrutura do terceiro XML:
/*
<news>
<new date="" day="" title="" />
<new date="" day="" title="" />
<new date="" day="" title="" />
...
</news>
*/
começo a criar o XML...
#versao do encoding xml
//$domXml = new DOMDocument("1.0", "ISO-8859-1");
//$domXml = new DOMDocument("1.0", "utf-8");
$domXml = new DOMDocument();
#retirar os espacos em branco
$domXml->preserveWhiteSpace = false;
#gerar o codigo
$domXml->formatOutput = true;
#criando o nó principal (root)
$root = $domXml->createElement("news");
...
capturo um dos XMLs dos 4 sites
$xml = simplexml_load_file("http://xyz.com.br/" . $lang . "/xyz.xml");
exemplo de como capturo o titolo do XML externo e coloco no interno...
$title = $domXml->createAttribute("title");
$value = $domXml->createTextNode(utf8_encode($content->chamada_titulo));
$title->appendChild($value);
$new->appendChild($title);
amarro os NOS
$root->appendChild($new);
$domXml->appendChild($root);
// Captura String XML
$xmlNews = $domXml->saveXML();
// Cria instancia de classe extendida de DomDocument e carrego XML
$domSort = new DOMSort();
$domSort->loadXML($xmlNews);// Efetua a ordenação
$domSort->sort( ".//new" , "compara" ); // utiliza função compara
// Cria objeto para percorrer o NO e montar o template
$xPath = new DOMXPath($domSort);
$newNos = $xPath->query("/news/new");
Aqui exibo na tela
foreach ($newNos as $newNo)
{
$day = $newNo->getAttribute('day');
$title = $newNo->getAttribute('title');
echo utf8_decode($day);
echo utf8_decode($title);
}
esse é o resumo do meu script, o q pode ta cagando meu ecoding ?
abçs
Carregando comentários...