Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal.
Estou gerando um XML aqui através de um PHP, porém não estou conseguindo gerá-lo com divisões de nós...
Bom, trata-se de uma galeria de fotos, e o seu XML é dividido em 3 nós. Preciso gerar um XML com esta estrutura:
<?xml version="1.0" encoding="utf-8" ?>
<photography>
<galleries name="1st gallery">
<pic id="1">
<image>1b.jpg</image>
<title>galeria 1, foto 1</title>
<descriptions>Lorem ipsum dolor sit amet</descriptions>
<thumbnail>1s.jpg</thumbnail>
<link>[http://www.1.com](http://www.1.com)
</pic>
<pic id="2">
<image>2b.jpg</image>
<title>galeria 1, foto 2</title>
<descriptions>consectetuer adipiscing elit</descriptions>
<thumbnail>2s.jpg</thumbnail>
<link>[http://www.2.com](http://www.2.com)
</pic>
<pic id="3">
<image>3b.jpg</image>
<title>galeria 1, foto 3</title>
<descriptions>consectetuer dec adipiscing elit</descriptions>
<thumbnail>3s.jpg</thumbnail>
<link>[http://www.3.com](http://www.3.com)
</pic>
</galleries>
<galleries name="2nd gallery">
<pic id="4">
<image>4b.jpg</image>
<title>galeria 2, foto 4</title>
<descriptions>Nunc quis sem nec tellus blandit</descriptions>
<thumbnail>4s.jpg</thumbnail>
<link>[http://www.4.com](http://www.4.com)
</pic>
<pic id="5">
<image>5b.jpg</image>
<title>galeria 2, foto 5</title>
<descriptions>Duis vitae velit sed dui malesuada</descriptions>
<thumbnail>5s.jpg</thumbnail>
<link>[http://www.5.com](http://www.5.com)
</pic>
<pic id="6">
<image>6b.jpg</image>
<title>galeria 2, foto 6<title>
<descriptions>Duis vitae velit sed dui malesuada</descriptions>
<thumbnail>6s.jpg</thumbnail>
<link>[http://www.6.com](http://www.6.com)
</pic>
</galleries>
</photography>
Percebam que tenho 3 nós (photography, galleries, pic), e o nó <galleries> "divide" as galerias de fotos que tenho, contendo todas as fotos de cada uma das galerias ( nó <pic> )...
o problema é que to gerando esse XML com erro... ele não aparece com essas divisões de galleries (1st gallerie, 2nd gallerie). Todos os nós <pic> aparecem dentro de uma única galeria apenas... vejam só como está a estrutura desse meu XML que estou gerando:
<?xml version="1.0" encoding="utf-8" ?>
<photography>
<galleries name="1st gallery">
<pic id="1">
<image>1b.jpg</image>
<title>galeria 1, foto 1</title>
<descriptions>Lorem ipsum dolor sit amet</descriptions>
<thumbnail>1s.jpg</thumbnail>
<link>[http://www.1.com](http://www.1.com)
</pic>
<pic id="2">
<image>2b.jpg</image>
<title>galeria 1, foto 2</title>
<descriptions>consectetuer adipiscing elit</descriptions>
<thumbnail>2s.jpg</thumbnail>
<link>[http://www.2.com](http://www.2.com)
</pic>
<pic id="3">
<image>3b.jpg</image>
<title>galeria 1, foto 3</title>
<descriptions>consectetuer adipiscing elit</descriptions>
<thumbnail>3s.jpg</thumbnail>
<link>[http://www.3.com](http://www.3.com)
</pic>
<!-- AQUI ERA PRA INICIAR UMA SEGUNDA GALERIA: 2ND GALLERIE -->
<pic id="4">
<image>4b.jpg</image>
<title>galeria 2, foto 4</title>
<descriptions>Nunc quis sem nec tellus blandit</descriptions>
<thumbnail>4s.jpg</thumbnail>
<link>[http://www.4.com](http://www.4.com)
</pic>
<pic id="5">
<image>5b.jpg</image>
<title>galeria 2, foto 5</title>
<descriptions>Duis vitae velit sed dui malesuada</descriptions>
<thumbnail>5s.jpg</thumbnail>
<link>[http://www.5.com](http://www.5.com)
</pic>
<pic id="6">
<image>6b.jpg</image>
<title>galeria 2, foto 6<title>
<descriptions>Duis vitae velit sed dui malesuada</descriptions>
<thumbnail>6s.jpg</thumbnail>
<link>[http://www.6.com](http://www.6.com)
</pic>
</galleries>
</photography>
a minha tabela SQL está com a seguinte estrutura:
-- Estrutura da tabela photography
CREATE TABLE `photography` (
`id` int(11) NOT NULL auto_increment,
`gallery` varchar(200) NOT NULL defaultimage varchar(255) NOT NULL default '0',title varchar(255) NOT NULL default '0',descriptions text NOT NULL,thumbnail varchar(255) NOT NULL default '0',link varchar(255) NOT NULL default '0',id)-- Extraindo dados da tabela photography
INSERT INTO photography VALUES("01", "1st gallery", "1b.jpg", "galeria 1 foto 1", "Lorem ipsum ...", "1s.jpg", "[http://www.1.com");](http://www.1.com)
INSERT INTO photography VALUES("02", "1st gallery", "2b.jpg", "galeria 1 foto 2", "consectetuer adipi ...", "2s.jpg", "[http://www.2.com");](http://www.2.com)
INSERT INTO photography VALUES("03", "1st gallery", "3b.jpg", "galeria 1 foto 3", "consectetuer adipi ...", "3s.jpg", "[http://www.3.com");](http://www.3.com)
INSERT INTO photography VALUES("04", "2nd gallery", "4b.jpg", "galeria 2 foto 4", "Nunc quis sem ...", "4s.jpg", "[http://www.4.com");](http://www.4.com)
INSERT INTO photography VALUES("05", "2nd gallery", "5b.jpg", "galeria 2, foto 5", "Duis vitae velit ...", "5s.jpg", "[http://www.5.com");](http://www.5.com)
INSERT INTO photography VALUES("06", "2nd gallery", "6b.jpg", "galeria 2, foto 6", "Duis vitae velit ...", "6s.jpg", "[http://www.6.com");](http://www.6.com)
e por fim, o meu PHP que gera o XML:
<?php
include("includes/config.php");
?>
<?php
/ BUSCAMOS OS VALORES NO BANCO DE DADOS /
$consulta = mysql_query("SELECT id,gallery,image,title,descriptions,thumbnail,link FROM photography ORDER BY id ASC");
/ Retorna o número de linhas do resultado /
$row=mysql_num_rows($consulta);
/ Verificamos se retornou algum resultado /
if($row>0){
/* Manda a mensagem para o Flash */
print "";
/ INICIAMOS A GERAÇÃO DO XML, COM OS VALORES DO BD /
$conteudo = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><photography>";
/* Para cada item retornado */
for($i=0; $i<$row; $i++) {
/* Recuperamos o ID */
$id = mysql_result($consulta,$i,"id");
/* Recuperamos o GALLERY */
$gallery = mysql_result($consulta,$i,"gallery");
/* Recuperamos a IMAGE */
$image = mysql_result($consulta,$i,"image");
/* Recuperamos o TITLE */
$title = mysql_result($consulta,$i,"title");
/* Recuperamos a DESCRIPTIONS */
$descriptions = mysql_result($consulta,$i,"descriptions");
/* Recuperamos o THUMBNAILS */
$thumbnails = mysql_result($consulta,$i,"thumbnails");
/* Recuperamos o LINK */
$link = mysql_result($consulta,$i,"link");
/* Inserimos os valores recuperados nas respectivas tags */
$conteudo .= "<galleries><pic><image>";
$conteudo .= $image;
$conteudo .= "</image><title>";
$conteudo .= $title;
$conteudo .= "</title><descriptions>";
$conteudo .= $descriptions;
$conteudo .= "</descriptions><thumbnails>";
$conteudo .= $thumbnails;
$conteudo .= "</thumbnails><link>";
$conteudo .= $link;
$conteudo .= "</link></pic></galleries>";
}
/* Fechamos a tag tabela */
$conteudo .= "</photography>";
/* Se existir, abrimos o arquivo photography.xml para leitura e escrita */
/* Se não existir criamos o arquivo tabela.xml */
$ponteiro = fopen("xmlphpcss/photography.xml", "w");
/* Escremos o conteúdo dentro do arquivo selecionado */
/* Codificamos para UTF8 os campos para não dar problemas com acentuação */
fwrite($ponteiro, utf8_encode($conteudo));
/* Fechamos o arquivo */
fclose($ponteiro);
/* Se não retornou nenhum resultado */
} else {
/ Manda a mensagem de erro para o Flash /
print "&erro=Não existe nenhum registro na Tabela!&erroMensagem=1";
}
?>
Alguém tem alguma idéia de como posso corrigir isso?
Agradeço a paciência.
Rafael
Carregando comentários...