使用php从mysql数据库表创建/更新xml文件

时间:2012-04-11 11:41:20

标签: php xml

我有一个javascript图片库,它从XML文件中获取数据。我正在构建后端功能,以便其他人轻松更新库。我可以从数据库中的表中获取XML文件中所需的所有数据。

<?xml version="1.0" encoding="UTF-8"?>
<portfolio>
<items> 
    <item>
        <thumbnail>images/banner001.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>banner</category>
        <description>Swatch MTV </description>
    </item>
    <item>
        <thumbnail>images/banner002.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>banner,campaign</category>
        <description>Nike iD</description>
    </item>
    <item>
        <thumbnail>images/banner003.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>banner</category>
        <description>Sony Handycam</description>
    </item>
    <item>
        <thumbnail>images/banner006.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>banner</category>
        <description>Statoil App kampagne</description>
    </item>     
    <item>
        <thumbnail>images/design006.jpg</thumbnail>
        <preview>images/preview.jpg</preview>
        <category>web</category>
        <description>Hempel Website design</description>
    </item>

</items>
</portfolio>

在这方面我有几个问题(请记住,我是相当新的PHP):

  1. 这是更好/更简单的选项:更新现有的xml文件还是只使用更新/更新的数据覆盖整个xml文件?
  2. 如何使用php创建相同的xml格式?
  3. 我一直在看SimpleXML和DOMDocument。在我的案例中哪一个更好/更容易使用?
  4. 我很感激你们能给我的任何帮助。如果发布代码,请附上简短的说明/解释。

    如果您需要澄清任何内容,请告诉我。

2 个答案:

答案 0 :(得分:1)

我认为使用更新/更新的数据覆盖整个xml文件很容易。下面是php文件,它通过连接数据库来创建xml数据。

test.php的

<?php header('Content-type: application/xml');echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

    //connect to db here
    $query1 = "select datas";
    $res1   = mysql_query($query1);
    echo '<portfolio>';
    echo '<items>';
    while($row1 = mysql_fetch_array($res1)) 
    {
    ?>
      <item>
        <thumbnail><?php echo $row1['yourdata1']; ?></thumbnail>
        <preview><?php echo $row1['yourdata2']; ?></preview>
        <category><?php echo $row1['yourdata3']; ?></category>
        <description><?php echo $row1['yourdata4']; ?></description>
      </item>
   <?php
   } 
  ?>
  </items>
</portfolio>

如果上面的文件名是test.php,那么你可以编写.htaccess重定向来将url重定向到.php文件,当网址为.xml

当网址为http://yoursitename.com/test.xml

时,代码会重定向到test.php
RewriteCond %{REQUEST_URI} test.xml
RewriteRule test.xml test.php [L] 

答案 1 :(得分:0)

ad 1)imho更好地更新(添加/删除)条目到xml文件,如果你每次都会生成新文件(如果有大量图像)你将不得不将大量数据保存到文件中。 。对我来说似乎不是正确的方法。

ad 2)php有几个库可以帮助创建xml文件,例如你提到的simplexml - 我时不时地使用它并且工作正常。

ad 3)再次imho是非常明确的,易于理解的用途,我会推荐它。我认为没有必要在这里展示它是如何运作的......谷歌有很多例子。

万一你会坚持要求不要在这里问。