Segunda-feira, 27 de outubro de 2003 às 03h59

Iniciando em PHP com XML

Fala galera! Essa semana vamos dar início a uma série de artigos sobre PHP e XML.

O que é XML?

O XML (Extensible Markup Language) permite que você crie os seus próprios conjuntos de elementos de marcação. O XML é uma maneira simples e padrão de delimitar os dados do texto. É como você pudesse usar a sua linguagem de programação favorita para criar uma estrutura de dados e então compartilhá-la com qualquer pessoa usando outra linguagem em qualquer plataforma.

Exemplo de arquivo XML: clientes.xml

<? xml version="1.0" ?>
<cliente>
  <nome> Júlio César Martini </nome>
  <email> baphp@imasters.com.br </email>
  <cidade> Araras/SP </cidade>
</cliente>

Abra o arquivo acima no seu navegador e veja o resultado:

Instalando a extensão EXPAT?

A extensão expat tem por objetivo possibilitar a análise de documentos XML. Se o PHP estiver sendo executado no servidor Apache 1.3.7 ou posterior o expat já estará disponível, portanto, você terá apenas que configurar o PHP com --with-xml para que a extensão seja integrada ao Apache.

Se você não estiver a extensão é só fazer o download em: http://sourceforge.net/projects/expat/

Funções PHP com XML

Comando

Descrição

xml_error_string

Retorna uma string de erro

xml_get_current_byte_index

Retorna o byte index atual

xml_get_current_column_number

Retorna a coluna atual

xml_get_current_line_number

Retorna a linha atual

xml_get_error_code

Retorna o código de erro

xml_parse

Inicia a análise de um documento XML

xml_parser_create

Cria um analisador XML

xml_parser_free

Libera um analisador XML

xml_parser_get_option

Retorna as opções

xml_parser_set_option

Ajusta as opções

xml_set_character_data_handler

Ajusta os caracteres de dados

xml_set_default_handler

Ajusta o handler padrão

xml_set_element_handler

Ajusta elementos de início e término

xml_set_external_entity_ref_handler

Ajusta entidade externa de referência

xml_set_notation_decl_handler

Ajusta uma declaração de notação

xml_set_object

Utiliza o analisador XMLcom um objeto

xml_set_processing_instruction_handler

Ajusta as instruções de processamento

xml_set_unparsed_entity_decl_handler

Ajusta uma declaração não analisada

Semana que vem estaremos apresentando um exemplo prático de PHP com XML.

Não deixe de nos enviar críticas ou sugestões para o próximo assunto, afinal a coluna é de vocês.

Boa semana à todos!

7 comentários

 Gilmar
24/05/2004 14h40

xml + php

Muito interessanre este assunto!!

 Gilmar
24/05/2004 14h44

xml+php+acrobat

gostava de ver aqui um artigo/tutorial sobre o preenchimento de docs pdf via web. Preenchimento de formulários/imagens via web.

 Alexandre
17/09/2004 20h46

Muito bom, resolveu minhas dúvidas

Meus parabbéns, teu artigo está muito bom e me ajudou muito.

Grande abraço,
Cássio Lacerda
http://www.cassiolacerda.com

 Dinarte cruz Neto
29/10/2005 14h48

segunda parte

julio, so ta fltando agora uma segunda parte desse artigo

 Vitor Oliveira
10/02/2006 16h14

Acentuação em PHP com XML

Júlio
Percebi que nenhum dos exemplos que falam em PHP com XML tem acentuação, isso me deixou intrigado. Testei os exemplos dos seus artigos e no lugar dos acentos aparecem uns caracteres estranhos. Mesmo quando coloco no arquivo.xml a linha encoding="iso-8859-1", na realidade se não tiver essa linha o xml nem é interpretado.
Descobri que no caso do PHP é preciso também informar qual o encoding que ele deve utilizar. Conforme linha de código abaixo:
...
$parser = xml_parser_create("iso-8859-1");
...
Espero com isso ter contribuído um pouco que seja com esse site que uso com muita frequência.
Valeu !

 Jamir Junior
28/03/2006 11h07

Problemas com acentuação

Meus amigos ainda estou com problemas com acentuação, ja acrescentei iso-8859-1 (comentario do Pedro Rabelo) e tbem no arquivo xml (&lt;?xml version="1.0" encoding="iso-8859-1), qdo executo o comando xml_set_character_data_handler ($xml_parser, "characterData"), ele chama a function characterData($parser , $data)
dentro desta função qq print no $data já perdeu a acentuação. Alguém pode me ajudar? Muito obrigado

 Jônatas Zanin
22/04/2009 00h20

SimpleXML

Estou usando o SimpleXML, e o código está funcional, mas não consigo pular linha de jeito nenhum.
Quero que o xml fique assim:
<trackList>
<track><title>Teste</title><location>teste.mp3</location></track>
<track><title>Teste2</title><location>teste2.mp3</location></track>
</trackList>
Que vá pulando linha a cada registro...
meu código é:
$xml = simplexml_load_file("playlist.xml");
$sxe = new SimpleXMLElement($xml->asXML());
$registro = $sxe->addChild("track");
$registro->addChild("title", $title);
$registro->addChild("location", $location);
$sxe->asXML("playlist.xml");

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Júlio César Martini atualmente presta serviços de WebMaster/Programador para o UOL (http://www.uol.com.br), Graduado em Tecnólogo em Informática pela UNIFIAN - Faculdades Anhanguera e Pós-Graduado em Desenvolvimento de Software para Web pela UFSCAR. Foi o primeiro profissional a chegar à marca de 100 artigos publicados no iMasters e trabalha com PHP desde 2000. Site: http://www.juliocesarmartini.com

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.