我知道有很多关于simpleXML和PHP的主题,但我需要有关特定xml代码的帮助。
<vitrine>
<canal>Hotwords</canal>
<product id="0">
<descricao>MP3 Apple iPod Class...</descricao>
<loja>ApetreXo.com</loja>
<preco>à 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 ...????? ?)
{
}
我怎样才能获取数据。我没有成功地尝试了所有我知道的事情。
感谢。
答案 0 :(得分:0)
首先,您需要<?xml version="1.0" encoding="UTF-8"?>
作为XML中的第一行,否则它无效。然后,这将帮助您调试编码生涯中的各种事情,尝试这一行:
echo "<pre>".print_r($xml,true)."</pre>";
这将为您提供从simplexml_load_string()
调用中获得的对象的确切布局。从那里开始,由于您可以看到对象布局,因此您应该能够弄清楚如何解析它。顺便说一句,在你的情况下,我认为你需要做类似的事情:
foreach($xml->vitrine as $element) {
// your code goes here
}
答案 1 :(得分:0)
似乎PHP摆脱了空白后的所有内容,因为product id
已更改为product
。无论如何这里是代码。
<?php
$v = <<<ABC
<vitrine>
<canal>Hotwords</canal>
<product id="0">
<descricao>MP3 Apple iPod Class...</descricao>
<loja>ApetreXo.com</loja>
<preco>à 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...