2011-11-07 35 views
-2

既にsimpleXMLとPHPについて多くのトピックがあることは知っていますが、特定のxmlコードに関するヘルプが必要です。PHPのsimpleXMLを使用して特定のXMLファイルを解析する方法

<vitrine> 
    <canal>Hotwords</canal> 

    <product id="0"> 
    <descricao>MP3 Apple iPod Class...</descricao> 
    <loja>ApetreXo.com</loja> 

    <preco>&#224; vista R$765,22</preco> 
    <urlImagem>http://imagem.domain.com.br/thumbs/ensopado/18/80x80_107156_1.jpg</urlImagem> 
    <urlProduto>http://domain.com.br/tr/rd?o=BiY4C2UnHQ0LOWgyGjc3NRFp-</urlProduto> 
    </product> 

    <product id="1"> 
    <descricao>TV Sony Bravia 3D LE...</descricao> 

    <loja>Fast Shop.com.b...</loja> 
    <preco>10 x R$299,90</preco> 
    <urlImagem>http://imagem.domain.com.br/thumbs/ensopado/2852/80x80_319373_1.jpg</urlImagem> 
    <urlProduto>http://domain.com.br/tr/rd?o=JDEn-</urlProduto> 
    </product> 

</vitrine> 

私はこのような各「製品」からデータを取得するためのforeachを必要とする:

<? 
$feedUrl = 'url to xml file'; 
$rawFeed = file_get_contents($feedUrl); 
$xml = simplexml_load_string($rawFeed); 

foreach ($item ...????? ?) 
{  

} 

はどうやってデータを取得するには、このforeachの操作を行うことができます。私は成功なしで私が知っているすべてを試みた。

ありがとうございました。

答えて

0

まずXMLの最初の行に<?xml version="1.0" encoding="UTF-8"?>が必要です。それ以外の場合は無効です。

echo "<pre>".print_r($xml,true)."</pre>"; 

あなたが戻っsimplexml_load_string()呼び出しから取得するオブジェクトの正確なレイアウトを与える:次に、これは、このラインを試してみてください、あなたのコーディングのキャリアの上に、あなたは物事のすべての種類をデバッグするのに役立ちます。そこから、オブジェクトレイアウトのビジュアルがあるので、それを解析する方法を理解できるはずです。 product idがちょうどproductに変更されたため、PHPは、空白の後evrythingを取り除くようだ

foreach($xml->vitrine as $element) { 
    // your code goes here 
} 
0

:ところで、あなたのケースでは、私のような何かを行う必要があると思います。とにかくここにコードがあります。

<?php 
$v = <<<ABC 
<vitrine> 
    <canal>Hotwords</canal> 

    <product id="0"> 
    <descricao>MP3 Apple iPod Class...</descricao> 
    <loja>ApetreXo.com</loja> 

    <preco>&#224; vista R$765,22</preco> 
    <urlImagem>http://imagem.domain.com.br/thumbs/ensopado/18/80x80_107156_1.jpg</urlImagem> 
    <urlProduto>http://domain.com.br/tr/rd?o=BiY4C2UnHQ0LOWgyGjc3NRFp-</urlProduto> 
    </product> 

    <product id="1"> 
    <descricao>TV Sony Bravia 3D LE...</descricao> 

    <loja>Fast Shop.com.b...</loja> 
    <preco>10 x R$299,90</preco> 
    <urlImagem>http://imagem.domain.com.br/thumbs/ensopado/2852/80x80_319373_1.jpg</urlImagem> 
    <urlProduto>http://domain.com.br/tr/rd?o=JDEn-</urlProduto> 
    </product> 

</vitrine> 
ABC; 

$xml = simplexml_load_string($v); 
//print_r($xml); 

foreach ($xml->product as $c){  
    echo $c->loja; //echoing out value of 'loja' 
} 

出力

ApetreXo.com 
Fast Shop.com.b... 
関連する問題