Simple Xml - Lidando Com Xml No Php5

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Simple Xml - Lidando Com Xml No Php5 as PDF for free.

More details

  • Words: 531
  • Pages: 3
www.insite.com.br

Simple XML - Lidando com XML no PHP5 por Anderson de Arruda Casimiro A extensão simpleXML pode ser adionada ao PHP4 e vem habilitada por default no PHP5. Tratar documentos XML com ela é algo relativamente simples. Mostrarei neste artigo um exemplo de como utilizar um arquivo XML para manter a configuração de um sistema, de uma maneira simples.

Bem, este é o arquivo que vamos utilizar... lógico que num ambiente web este arquivo deverá ficar num diretório protegido, mas seu script PHP deve ter acesso ao mesmo. core.xml: <sys> Mukeka 1.0 Anderson de Arruda Casimiro <email>[email protected] anderson at duodraco dot com :: Mukeka Braba mysql localhost <user>quser <password>quser mukeka

A função simplexml_load_file() tenta ler o arquivo passado no parâmetro. Se quiser passar uma string contendo o XML(algo como "mukeka") utilize a função simplexml_load_string(). Essas funções retornam um objeto(a tag pai do xml) com vários objetos encadeados(a tags filhas), que por sua vez possuem outros objetos encadeados(as filhas das filhas), e assim por diante. Por exemplo, em nosso caso, para se pegar o valor de name, dentro de sys, dentro de core fazemos assim: sys->name; ?>

Outra função bastante util é a xpath. Se quiséssemos acessar direto o objeto name poderíamos fazer assim: xpath("name");

Comentários -

echo $srch[0]; ?>

Agora a página que efetivamente pegará o XML, o tratará e definirá as variáveis para o sistema: system = $xml->obj("sys"); $this->db = $xml->obj("db"); } public function getSystem($index) { return $this->system[$index]; } public function getDb($index) { return $this->db[$index]; } } class Xml { public $data; function __construct($file) { $this->data = simplexml_load_file($file) or die("Não é um arquivo válido"); } function obj($search) { $obj = $this->data->xpath($search); return get_object_vars($obj[0]); } } ?>

A Classe "Xml" somente possui um método construtor, o qual vai ler o arquivo XML e transformá-lo num objeto e definí-lo como atributo data. O método obj faz buscas usando o método xpath do simplexml. Como parâmetro você pode passar a string com o nome da tag a ser encontrada, o que pode retornar mais de um resultado, que será colocado em um array; você tambgém pode passar uma hierarquia, por exemplo: "/core/sys". O retorno do método obj é um get_object_vars porque para nossa outra classe não precisaremos de objetos, mas sim seus valores; retorno o indice 0(zero) do resultado de $obj porque queremos o primeiro(e único) resultado da busca por "sys". No construtor da classe Core, instanciamos Xml, e chamamos a busca ($xml->obj()) por "sys" e "db" que são as tags que vão fazer nossas definições. Esta classe ainda conta com os métodos getSystem() e getDb(), os quais irão retornar os valores propriamente ditos. Lógico que seria muito mais fácil definir estes atributos direto no script, uma vez que este é muito simples. Agora imagine quão mais facil ficará para tratar outros documentos XML, e usá-los em outros sistemas, e até RSS, para o qual estou preparando uma coluna para breve, junto com as outras funcionalidades do simplexml.

Até breve. PS.: Para maiores esclarecimentos: http://www.php.net/simplexml

Related Documents

Xml
June 2020 21
Xml
November 2019 35
Xml
May 2020 25
Xml
November 2019 45
Xml
November 2019 11