使用PHP从XML文件更新MySQL

时间:2014-11-26 07:36:12

标签: php mysql xml

我在这里阅读了许多有用的答案,其中大部分帮助我创建了从XML文件导入数据的脚本。问题是,这次我有额外的部分与图像url的女巫也需要更新到MySQL。
现在,我使用XML中的数据更新MySQL,然后使用其他脚本下载所需的图像。在使用XML feed的网站改变了它们的结构后,我有问题弄清楚如何将数组中的图像url更新为MySQL行,以便我可以在此之后下载图像。 即使我选择下载图像而不更新到MySQL,我也无法下载它们。

这是XML结构

<ArrayOfUnitDTO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <UnitDTO>
    <Category>Category name</Category>
    <code>863</code>
    <Status>Blocked</Status>
    <RefNo>12345</RefNo>
    <Images>
      <Image>
        <Title>Community</Title>
        <ImageURL>http://imageaddress.com/images/watermark.aspx?imageurl=/uf/1015/GroupUpdate/unit/350/350_Image.jpg&amp;width=640&amp;group=1015&amp;module=1&amp;watermarktype=default&amp;position=Center</ImageURL>
      </Image>
      <Image>
        <Title>Local Area Image</Title>
        <ImageURL>http://imageaddress.com/images/watermark.aspx?imageurl=/uf/1015/GroupUpdate/unit/631/631_Image.jpg&amp;width=640&amp;group=1015&amp;module=1&amp;watermarktype=default&amp;position=Center</ImageURL>
      </Image>
    </Images>
  </UnitDTO>
</ArrayOfUnitDTO>

我正在使用此

foreach ($listings ->UnitDTO as $listingInfo) //loop read xml
{
            $RefNo =  $listingInfo->RefNo;
            $Category = $listingInfo->Category;
            $code = $listingInfo->code;
            $Status = $listingInfo->Status;

 mysqli_query($link,"REPLACE INTO UnitDTO (`RefNo`, `Category`, `code`, `Status`) VALUES ('$RefNo', '$Category', '$code', '$Status',)") or die(mysqli_error($link));

}

没有遇到我尝试的东西,我无法将图片网址导入数组中的imageurl MySQL行。

1 个答案:

答案 0 :(得分:2)

要从xml以上获取图片网址,你必须再运行一个foreach循环,尝试类似下面的代码并按照你的要求使用它。

foreach ($listings ->UnitDTO as $listingInfo){
    $RefNo =  $listingInfo->RefNo;
    $Category = $listingInfo->Category;
    $code = $listingInfo->code;
    $Status = $listingInfo->Status;
        foreach ($listingInfo->Images->Image as $image){
            echo $image->ImageURL;
        }
}