Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 8

Extrair tags de XML com PHP

14-04-2010 08:31

Olá,
então é assim, eu fiz uma pequena aplicação em flash AS3 que trabalha inteiramente com XML.
Agora queria fazer um pequeno backoffice para a aplicação, tenho alguma experiência com php + sql então pensei fazer o seguinte:

criei tabelas que basicamente usam a mesma estrutura dos ficheiros xml, quando actualizo as tabelas vou buscar o conteudo das tabelas e actualizo os ficheiros xml através de php (simplexml). Tudo correu bem, criei a bd, um formulario para actualizar uma das tabelas e actualizar o xml, o problema é que eu não sei apagar a informação que já existe dentro do ficheiro xml com php.

Vamos a um exemplo:

<articles> <article> <title>aqui vai o titulo</title> <content> aqui vai o conteudo </content> </article> </articles>

o que eu queria fazer era: antes de gravar os novos artigos, apagar tudo o que se encontra dentro da tag <articles> mas deixar o resto do documento intacto.

Alguma ideia de como fazer isto?

desde já obrigado...
cumprimentos,
Marco Monteiro
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17681
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrair tags de XML com PHP

14-04-2010 09:02

Tem como você colocar esses valores como variáveis do PHP?
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 8

Extrair tags de XML com PHP

14-04-2010 09:11

basicamente fiz isto:

if(!isset($_POST['submit']) && empty($_POST['submit'])){ print(" <form action=\"addnew.php\" method=\"post\" enctype=\"application/x-www-form-urlencoded\" name=\"add\"> <p>Titulo - <input name=\"title\" type=\"text\"></p> <p>Intro - <textarea name=\"intro\" cols=\"20\" rows=\"\"></textarea></p> <p>Intro - <textarea name=\"content\" cols=\"20\" rows=\"\"></textarea></p> <p>Date - <input name=\"date\" type=\"text\"></p> <p><input name=\"submit\" type=\"submit\" value=\"submit\"></p> </form>"); } else{ $title = $_POST['title']; $intro = $_POST['intro']; $content = $_POST['content']; $date = $_POST['date']; //update DB with new data! require_once("conn.php"); global $connection; $query = "INSERT INTO articles (title, intro, content, date) VALUES ('{$title}', '{$intro}', '{$content}', '{$date}')"; $add_article = mysql_query($query, $connection); confirm_query($add_article); //Get data from DB $query = "SELECT * FROM articles ORDER BY idarticle ASC"; $get_articles = mysql_query($query, $connection); confirm_query($get_articles); //get current xml file $xml = simplexml_load_file("articles.xml"); $sxe = new SimpleXMLElement($xml->asXML()); while ($row = mysql_fetch_array($get_articles)){ $article = $xml ->articles->addChild('article'); $article->addChild('id', utf8_encode($row ['idarticle'])); $article->addChild('title', utf8_encode($row ['title'])); $article->addChild('intro', utf8_encode($row ['intro'])); $article->addChild('content', utf8_encode($row ['content'])); $article->addChild('date', utf8_encode($row ['date'])); } $xml->asXML("articles.xml"); gravarXML($xml); }

faço submit de nova info através de um formulário,
actualizo a base de dados,
faço load do ficheiro xml
e volto a escreve-lo dentro das respectivas tags, mas como não estou a apagar o conteudo que os nodes já tinham ele adiciona a info por baixo da que já lá estava duplicando a mesma, e o objectivo era apagar a que lá estava e voltar a escreve-la...

alguma ideia?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17681
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrair tags de XML com PHP

14-04-2010 11:45

Porque não coloca uma linha para apagar esse xml antes?
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Tópico Autor
Mensagens: 8

Extrair tags de XML com PHP

14-04-2010 13:15

A ideia não é apagar o xml todo, isso eu sei fazer, o que não sei fazer é apagar todo o conteudo entre os nodes <articles>... alguém sabe como fazer isso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17681
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Extrair tags de XML com PHP

14-04-2010 14:07

Adaptei essa expressão regular, dá uma olhada

<?php function limpaXML($dados){ $tags = array('@<title[^>]*?>.*?</title>@si', '@<content[^>]*?>.*?</content>@si', '@<article>.*?</article>@si' ); $texto = preg_replace($tags, '', $dados); return $texto; } echo limpaXML("<articles> <article> <title>aqui vai o titulo</title> <content> aqui vai o conteudo </content> </article> </articles>"); ?>

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado