php和xml不能正常工作simplexml_load_string

时间:2015-12-03 16:31:21

标签: php xml xml-parsing

您好我一直在尝试通过php加载xml,但是从我的vps错误日志中我总是出错。

  

PHP警告:为foreach()提供的参数无效试图获取   非对象的属性

到目前为止,这是我创造的

/**
 * WeatherSpecials
 *
 * @ORM\Table(name="weather_specials")
 * @ORM\Entity(repositoryClass="AppBundle\Entity\WeatherSpecialsRepository")
 * @ORM\HasLifecycleCallbacks
 */
class WeatherSpecials
{
    // other stuff

    /**
     * @ORM\PrePersist
     */
    public function prePersist(\Doctrine\ORM\Event\LifecycleEventArgs $event)
    {
        $this->df_date = new DateTime();
    }

    /**
     * @ORM\PreUpdate
     */
    public function preUpdate(\Doctrine\ORM\Event\LifecycleEventArgs $event)
    {
        $this->df_date = new DateTime();
    }
}

的test.xml

xml.php
<?php

$url = "test.xml";
$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);

$data = curl_exec ($ch);
curl_close($ch);

$xml = simplexml_load_string($data);

$con = mysql_connect("localhost","root","mypassw0rd");
mysql_select_db("test_xml",$con) or die(mysql_error());

foreach($xml -> item as $row){
    $title = $row -> title;
    $destination = $row -> destination;
    $price = $row -> price;


mysql_query("INSERT INTO `tblxml` VALUES('NULL','$title','$destination','$price')") or die(mysql_error());

}

?>

表格结构

<item>
    <title>
    title 1
    </title>

    <destination>
    destination 1
    </destination>

    <price>
    price 1
    </price>
</item>

xml和php都在同一个文件夹中。

任何帮助都会表示赞赏。

1 个答案:

答案 0 :(得分:0)

再次阅读你的问题后,确实有一些严重的缺陷。

  1. 请阅读关于XML / SimpleXML / DomDocument的好教程
  2. 如上所述,请使用较新的mysqli_函数,PDO和绑定
  3. 使用curl在本地获取XML文件的目的是什么?
  4. 您的查询不起作用,您没有指定字段,也不需要插入NULL值(尽管它会起作用)。这是INSERTMySQL查询的框架:
  5. INSERT INTO `table` (`field1`, ..., `fieldx`) VALUES('$value1', ... '$valuex');