Jump to content
nbento.neves

XML RSS -> PHP

Recommended Posts

nbento.neves

Boa tarde a todos,

Infelizmente não encontrei nada sobre este tópico, já procurei na internet e tem sido muito difícil encontrar como fazer isto O.o. A questão é, imaginem que tenho um ficheiro xml com esta estrutura:

<compras>

    <categorias>

        <categoria> 1 </categoria>

    </categorias>

    <produtos>

        <produto>

              <id>1</id>

              <nome>Exemplo</nome>

              .....

          </protuto>

          ....

    </produtos>

</compras>

Consigo visualizar este ficheiro através de um url, alguem me consegue explicar como consigo ler isto para colocar numa pagina html através de php?

Já tentei com simplexml, xmlparser entre outras coisas mas não consigo.

Abraço, Obrigado por lerem o tópico

Share this post


Link to post
Share on other sites
nbento.neves

Boa Tarde,

Agradeço a tua resposta e é mais uma ajuda e mais uma coisa que aprendo a fazer =) mas mudaram de ideias quanto ao fazer em xml, isto todo porque o ficheiro tinha um erro e não vão estar a corrigir então preferem fazer em csv.

Eu já consigo ler o url e passar os dados para um array:

Array:

=> Array
        (
            [0] => Array
                (
                    [0] => code
                    [1] => manufacturer
                    [2] => name
                    [3] => description
                    [4] => price
                    [5] => category
                    [6] => image_url
                    [7] => product_url
                )

        )

    [xxxxxx] => Array
        (
            [0] => Array
                (
                    [0] => xxx
                    [1] => xxxxxx
                    [2] => xxxxxxxxxxxx
                    [3] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                    [4] => xxxxx
                    [5] => xxxx
                    [6] => xxxxxxxx
                    [7] => xxx
                )

        )

Peço desculpa colocar os "x" mas não posso fornecer a informação que esta no url, por questão de ética =).

O problema surge quando quero passar o conteúdo do array para uma tabela, o que aconteceu é que ele esta sempre a repetir o <table> já o tirei fora do foreach mas este da um erro no browser. A duvida é como faço para não colocar a primeira linha da tabela. Por exemplo em vez de aparecer price gostava de ser eu a escrever preço. Alguém consegue dizer-me como posso resolver isto?

Aqui vai o ficheiro php para analisarem:

<?php
//Não coloco o url do ficheiro
$fp = fopen('url') or die('!fopen');
$groups = array();

while(!feof($fp)) {
  $row = array_filter(fgetcsv($fp));
  if ( !empty($row) ) {
    @$groups[$row[0]][] = $row;
  }
}


foreach( $groups as $value ) {
echo '<table border="1">';
echo '<tr>';
  foreach( $value as $row ) {
    echo '
		<td width="200px">'.$row[2].'</td>
        	<td width="500px">'.$row[3].'</td>
		<td width="100px">'.$row[4].'</td>
		<td width="80px">'.$row[5].'</td>
		<td width="100px"><img src="'.$row[6].'"/></td>
		<td><a href='.$row[7].'>Veja Aqui</a></td>';
  		//print_r($row);
  		}
	echo '</a></tr>';
}
echo '</table>';
/*
foreach( $groups as $value ) {
echo '<table border="1">';
  foreach( $value as $row ) {
    echo '
	<tr>
		<td>'.$row[2].'</td>
	</tr>
      	<tr>
        	<td>'.$row[3]. '</td>
     	</tr>
  	<tr>
		<td>'.$row[4].'</td>
	</tr>';
  //print_r($row);
  }
  echo '</table>';
}
*/

?>

O que me aparece no browser é algo deste género:

testeva.jpg

O que quero que aconteça é que a primeira tabela não apareça e que cada linha de informação deixe de ser <table> como podem verificar no firebug.

Agradeço a atenção

Share this post


Link to post
Share on other sites
nbento.neves

já agora o que aparece quando coloco o <table> fora do foreach é:

Notice: Undefined offset: 3 in D:\Wamp\www\File CSV\teste4.php on line 18

Notice: Undefined offset: 3 in D:\Wamp\www\File CSV\teste4.php on line 18

Notice: Undefined offset: 3 in D:\Wamp\www\File CSV\teste4.php on line 18

Notice: Undefined offset: 3 in D:\Wamp\www\File CSV\teste4.php on line 18

Notice: Undefined offset: 3 in D:\Wamp\www\File CSV\teste4.php on line 18

Notice: Undefined offset: 3 in D:\Wamp\www\File CSV\teste4.php on line 18

Notice: Undefined offset: 2 in D:\Wamp\www\File CSV\teste4.php on line 17

Notice: Undefined offset: 3 in D:\Wamp\www\File CSV\teste4.php on line 18

Notice: Undefined offset: 4 in D:\Wamp\www\File CSV\teste4.php on line 19

Notice: Undefined offset: 5 in D:\Wamp\www\File CSV\teste4.php on line 20

Notice: Undefined offset: 6 in D:\Wamp\www\File CSV\teste4.php on line 21

Notice: Undefined offset: 7 in D:\Wamp\www\File CSV\teste4.php on line 22

depois aparece a tabela exactamente como eu pretendo.

Share this post


Link to post
Share on other sites
scorch

É por que esses índices não estão definidos no array. :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
nbento.neves

Não entendi o que quiseste dizer com isso  :nono1: bahh eu comecei a muito pouco tempo a trabalhar com php, ainda não sei muita coisa  :)

Share this post


Link to post
Share on other sites
scorch

Tipo:

$array[2] = "xpto";

//Não vai dar erro, pois o 2 no array está definido
echo $array[2];
//Vai mostrar esse erro, pois não está definido
echo $array[4];


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.