Jump to content


Photo

Exibir Um Só Nodo Do Xml


  • Faça o login para participar
1 reply to this topic

#1 automouse

automouse

    Turista

  • Usuários
  • 37 posts
  • Sexo:Não informado

Posted 18/06/2006, 16:23

Comecei a pouco tempo mecher com xml + php.
Daí tenho o seguinte xml:

<?xml version="1.0"?>
<movies>

<filme>
<nome>Piratas do Caribe</nome>
<data>xx/xx</data>
</filme>

<filme>

<nome>Eu, robô</nome>
<data>yy/yy</data>
</filme>

<filme>
<nome>X-Men 3</nome>
<data>zz/zz</data>
</filme>

</movies>


Mas queria exibir o xml sem exibir a data por exemplo, ou só exibir os dados do filme Piratas do Caribe por exemplo.

utilizo o seguinte script pra ler xml:
<?
	//FUNÇÃO DA TAG INICIAL DO ARQUIVO XML
	function FuncInicial($parser, $elemento) {
		if($elemento == "MOVIES") {
			echo "<table cellpading=0 cellspacing=0 border=0 width=50%>";
			echo "<tr><td bgcolor=0099CC align=center>";
			echo "<font face=Arial size=2 color=FFFFFF><b>Filmes que estão para exibição:";
		}
		elseif($elemento == "FILME")
			echo "<tr><td height=3>";
		elseif($elemento == "NOME") {
			echo "<tr><td bgcolor=#C1F0FF>";
			echo "<font face=Arial size=2><b>";
		}
	}//FECHA FUNCTION FUNCINICIAL


	//FUNÇÃO PARA EXIBIR OS DADOS DO DOCUMENTO XML
	function FuncDados($parser, $dados) {
		echo $dados;
	}//FECHA FUNCTION FUNCINICIAL


	//FUNÇÃO DA TAG INICIAL DO DOCUEMENTO XML
	function FuncFinal($parser, $elemento) {
		if($elemento == "MOVIES")
			echo "</b></font></td></tr></table>";
		elseif($elemento == "FILME")
			echo "</td></tr>";
		elseif($elemento == "NOME")
			echo "</b></font></td></tr>";
	}//FECHA FUNCTION FUNCFINAL

	//CRIA O PARSER XML
	$parser = xml_parser_create();

	//DEFINE AS FUNÇÕES
	xml_set_element_handler($parser, "FuncInicial", "FuncFinal");
	xml_set_character_data_handler($parser, "FuncDados");

	//ABRE O ARQUIVO XML PARA LEITURA
	$ponteiro = fopen("filmes.xml", "r");

	//INICIA A ANÁLISE DO DOCUMENTO XML
	while($dados = fread($ponteiro, 4096)) {
		//INICIA A ANÁLISE DO DOCUMENTO XML
		xml_parse($parser, $dados);
	}//FECHA WHILE

	//LIBERA A MEMÓRIA USADA PELO PARSER
	xml_parser_free($parser);
?>

esse eu tentei fazer que ele não mostrasse a data, mas mesmo assim aparece no topo da página...

Alguém sabe como posso fazer o que estou querendo?

valeu

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 18/06/2006, 18:16

É, manipular o XML no PHP é bem chato, ainda mais sem SimpleXML.

Uma função que pode ajudar, é a:
http://br2.php.net/x...rse_into_struct

<pre>
<?php

	$sContent = file_get_contents('teste.xml');
	
	$p = xml_parser_create();

	xml_parse_into_struct($p, $sContent, $vals);
	xml_parser_free($p);

	print_r($vals);

?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq