Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LPinheiro

[Resolvido] Erro ao remover um registro do XML - PHP4/5

Recommended Posts

Estou com um problema ao executar um codigo no servidor remoto (PHP 4.9).

 

Em localhost não tenho nenhum problema (PHP 5.2). Estou usando o DOMAdapter do Diego Feitosa para a conversão entre o 4 e 5 mas não entendo quase nada disso, estou indo no chute sempre. E batendo cabeça.

 

Tenho uma pagina que exibe todos os registros do XML e apresenta um link para exclusão. Leitura usando AJAX, funciona corretamente.

 

Ao clicar em Apagar, chama o script em PHP, resumido abaixo ($id é o numero da sequência do node):

require_once("DOMAdapter.inc");
$file= "../effects_glider/slides/products/products.xml";

$xml = new DOMAdapter();
$xmlDoc = $xml->createDocument();
$xmlDoc->load($file);
$xmlitems = $xmlDoc->getElementsByTagName('xmlitem');

$node = $xmlitems->item($id);
$image = $xmlDoc->getElementsByTagName('foto');
$image = $image->item($id);
$image = $image->nodeValue;
//$oldnode = $node->parentNode->removeChild($node);
$parent = $node->parentNode;
$parent->removeChild($node); //LINE 20

$xmlsave = $xmlDoc->save("../effects_glider/slides/products/products.xml");

 

O erro retornado é:

Fatal error: Call to a member function on a non-object in .../_xml/remove_product.php on line 20

 

 

Na extensão citada acima, tem varias coisas do tipo (imagino que seja justamente para chavear entre o PHP 4 e 5):

function appendChild(&$element) {
		$this->doc->append_child($element->obj);
		if (is_null($this->documentElement))
			$this->documentElement = &$element;
	}

Mas observei que não tem nada relacionado a parentNode nem removeChild no DOMAdapter.inc e DOM.inc. Pelo que entendi estou tentando executar um comando do PHP 5 no 4 sem ter uma função para fazer a conversão. Ou estou viajando?

 

 

O que significa este erro e como posso remover o $node do XML? Todos os demais codigos estão funcionando corretamente tanto no 4 quanto no 5. A solução também precisa rodar nos 2 pois meu localhost é 5 e minha hospedagem é 4.

 

O XML é bastante simples, na forma:

<xmlitems>
  <xmlitem>
  <xmlitem>
  <xmlitem>
</xmlitems>

 

Obrigado,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessoal,

 

Depois de perder um bom tempo com isso, voltei à hospedagem e finalmente consegui fazer o upgrade para o PHP5.2

 

 

Um problema a menos daqui pra frente, esse me fez perder tempo demais.

 

 

No 5 rodou tudo perfeitamente. Inclusão, exclusão de registros e arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.