luizmelao 0 Denunciar post Postado Novembro 11, 2008 Olá amigos tenho um bd, onde um arquivo php pega as informacoes do bd e cria um xml. esse é um codigo php......onde pega as informacoes do bd e cria o xml..........a estrutura do xml é essa........no final do fechamento de cada tag xml existe o \n, que é para pular de linha. $conteudo = "<question>\n"; $conteudo .= "<text>$pergunta</text>\n"; $conteudo .= "<choices>\n"; $conteudo .= "<choice>$r1</choice>\n"; $conteudo .= "<choice>$r2</choice>\n"; $conteudo .= "<choice>$r3</choice>\n"; $conteudo .= "<choice>$r4</choice>\n"; $conteudo .= "</choices>\n"; $conteudo .= "\n\n<answer>$certa</answer>\n"; $conteudo .= "</question>\n"; mas no arquiv xml está assim: <quiz> <question> <text>(OAB-SP Vunesp - 25.02.2007 - 131º) 63. Aponte a alternativa que NÃO corresponde a norma da Constituição Federal. </text> <choices> <choice>A prisão, exceto em flagrante delito, depende de decisão judicial fundamentada. </choice> <choice>Não se admite prova obtida por meios ilícitos. </choice> <choice>No terrorismo, não será admitida progressão de regime. </choice> <choice>As Comissões Parlamentares de Inquérito têm poderes de investigação próprios da autoridade judiciária. </choice> </choices> </question> </quiz> o problema na leitura está aqui: <choice>A prisão, exceto em flagrante delito, depende de decisão judicial fundamentada. </choice> e eu preciso que fique assim: <choice>A prisão, exceto em flagrante delito, depende de decisão judicial fundamentada.</choice> ja tirei o \n e nao deu certo..........e exite alguns exemplos que ele coloca uma quebra de texto no meio do texto do xml.....por exemplo: <choice>A prisão, exceto em flagrante delito, depende de decisão judicial fundamentada. </choice> oq eu preciso fazer para essas tags ficarem certas??/ obrigado!!! Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Novembro 11, 2008 POGramando: <?php $content = ""; if($fp = @fopen('seuarquivo.ext','r')) do { $content = @fgets($fp); } while(!feof($fp)); fclose($fp); //Controle das quebras de linha @str_replace('\n','',$content); $j=0; $valor_br = 75; //Quantidade de caracteres antes de quebrar a linha. for($i = 0;$i <= strlen($content);$i++) { if($j == $valor_br) { $j = 0; $content[$i].="\n"; continue; } $j++; } //Tiramos as quebras de linha antes das tags $content = @str_replace('</choice>\n','</choice>',$content); $content = @str_replace('<choice>\n','<choice>',$content); $content = @str_replace('\n</choice>','</choice>',$content); $content = @str_replace('\n<choice>','<choice>',$content); ?> Ficou bem ridiculo (estou indo dormir agora,e fiz brincando/POGramando),mas espero que resolva seu problema. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 11, 2008 Tópico movido Webstandards: CSS / XML / XHTML / HTML http://forum.imasters.com.br/public/style_emoticons/default/seta.gif PHP Compartilhar este post Link para o post Compartilhar em outros sites
luizmelao 0 Denunciar post Postado Novembro 11, 2008 Cara, veja meu codigo inteiro ai............. onde eu insiro esse codigo q tu me enviou???? obrigado pela ajuda <? $nome = $_POST['nome']; $id_curso=$id_curso; //CONECTA AO BANCO DE DADOS $conn = @mysql_connect("localhost", "root","senha") or die("ERRO NA CONEXÃO"); //SELECIONA A BASE DE DADOS A SER UTILIZADA $db = @mysql_select_db("quiz", $conn) or die("ERRO NA SELEÇÃO DA BASE DE DADOS"); $sql = @mysql_query("SELECT * FROM curso WHERE (curso.id_curso=$id_curso)") or die("ERRO NO SQL"); while ($row=mysql_fetch_array($sql)){ $quantidade=$row["quantidade"]; } $sql = @mysql_query("SELECT * FROM perguntas,curso WHERE (curso.id_curso=$id_curso) and (perguntas.id_curso=curso.id_curso) ORDER BY RAND() LIMIT $quantidade ") or die("ERRO NO SQL"); $row = mysql_num_rows($sql); //VERIFICA SE A PESQUISA RETORNOU ALGUMA LINHA if($row > 0) { //ARQUIVO $arquivo = "./".$nome."/quiz.xml"; //ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA) $ponteiro = fopen($arquivo, "w"); //ESCREVE NO ARQUIVO XML fwrite($ponteiro, "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n"); fwrite($ponteiro, "<quiz>\n"); for($i=0; $i<$row; $i++) { //PEGA OS DADOS DO SQL $id_pergunta = mysql_result($sql,$i,"id_pergunta"); $pergunta= mysql_result($sql,$i,"pergunta"); $r1= mysql_result($sql,$i,"r1"); $r2= mysql_result($sql,$i,"r2"); $r3= mysql_result($sql,$i,"r3"); $r4= mysql_result($sql,$i,"r4"); $certa= mysql_result($sql,$i,"certa"); $pergunta= utf8_encode($pergunta); $r1= utf8_encode($r1); $r2= utf8_encode($r2); $r3= utf8_encode($r3); $r4= utf8_encode($r4); $certa= utf8_encode($certa); $conteudo = "<question>\n"; $conteudo .= "<text>$pergunta</text>\n"; $conteudo .= "<choices>\n"; $conteudo .= "<choice>$r1</choice>\n"; $conteudo .= "<choice>$r2</choice>\n"; $conteudo .= "<choice>$r3</choice>\n"; $conteudo .= "<choice>$r4</choice>\n"; $conteudo .= "</choices>\n"; $conteudo .= "\n\n<answer>$certa</answer>\n"; $conteudo .= "</question>\n"; //ESCREVE NO ARQUIVO fwrite($ponteiro, $conteudo); }//FECHA FOR //FECHA A TAG AGENDA fwrite($ponteiro, "</quiz>"); //FECHA O ARQUIVO fclose($ponteiro); }//FECHA IF($row) ?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Novembro 11, 2008 Use DomXML, uma forma mais profissional de gerar xml http://br2.php.net/domxml Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Novembro 11, 2008 Isso ai seria independente! E tem erros (vários). Recomendo que faça como o fabyo falou! Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
luizmelao 0 Denunciar post Postado Novembro 11, 2008 mas o DOMXML cria um arquivo XML???? Compartilhar este post Link para o post Compartilhar em outros sites
luizmelao 0 Denunciar post Postado Novembro 11, 2008 Rapaziada vi esse exemplo aqui http://clares.wordpress.com/2008/02/10/gerando-xml-com-php/ mas como pegar as informacoes do BD???? Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Novembro 11, 2008 Faz as querys normalmente,ai no lugar das strings,coloca o resultado da query. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Novembro 11, 2008 mas o DOMXML cria um arquivo XML???? Claro, so ver o manual do php no link que passei acima, ou esse link que tbm tem um exemplo de como fazer. Compartilhar este post Link para o post Compartilhar em outros sites
luizmelao 0 Denunciar post Postado Novembro 11, 2008 Fala Rapaziada, obrigado pelas ajudassss........... Consegui criar o xml.......... o codigo é esse: <? $link = mysql_connect('localhost','root','senha'); mysql_select_db('quiz',$link); $result = mysql_query("SELECT * FROM perguntas ORDER BY RAND() LIMIT 5"); $doc = new DOMDocument('1.0', 'UTF-8'); $root = $doc->createElement('quiz'); $root = $doc->appendChild($root); while($row = mysql_fetch_assoc($result)) { // add node for each record $car= $doc->createElement('question'); $car = $root->appendChild($car); foreach($row as $fieldname => $fieldvalue) { $child = $doc->createElement($fieldname); $child = $car->appendChild($child); //add data to the new element $value = $doc->createTextNode($fieldvalue); $value = $child->appendChild($value); } } echo 'Wrote: ' . $doc->save("cars.xml") . ' bytes'; $node = $doc->createElement('car'); $node = $root->appendChild($node); $node->setAttribute('name', 'car name from DB'); ?> apareceu assim: <quiz> <question> <id_pergunta>1305</id_pergunta> <pergunta> (OAB- SP Vunesp - 07.12.2003 � 122�) As express�es que imp�em ao advogado: �ser fiel � verdade�, �aprimorar-se no culto dos princ�pios e no dom�nio da ci�ncia jur�dica� e �lutar sem receio pelo primado da Justi�a� est�o contidas </pergunta> <r1> no Estatuto da Advocacia e seu Regulamento Geral. </r1> <r2>nos C�digos de Processo Civil e Processo Penal. </r2> <r3> na Portaria n.o 1.886/94 do MEC, ao estabelecer a grade curricular para os Cursos Jur�dicos no Brasil. </r3> <r4>no pre�mbulo do C�digo de �tica e Disciplina. </r4> <certa>no pre�mbulo do C�digo de �tica e Disciplina. </certa> </question> </quiz> ele puxa os nomes dos atributos do definidos no BD o problema está na seguinte situacao. http://forum.imasters.com.br/public/style_emoticons/default/cry.gif <r1></r1> <r2></r2> <r3></r3> <r4> </r4> teriam q ser substituidos por <choice></choice> <choice></choice> <choice></choice> <choice></choice> o que fazer nesse caso???? Compartilhar este post Link para o post Compartilhar em outros sites
luizmelao 0 Denunciar post Postado Novembro 12, 2008 ninguem sabe???? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Compartilhar este post Link para o post Compartilhar em outros sites