【问题标题】:Outputting XML via PHP and SQL通过 PHP 和 SQL 输出 XML
【发布时间】:2012-03-03 23:20:19
【问题描述】:

谁能帮助我告诉我如何通过 PHP 输出我的 XML 结果?我有一个 sql 数据库并用 PHP 编写函数来解析 XML,我已经在 Firefox 中调试了页面(使用 NET 选项卡),这会产生与我的 SQL 语句相对应的正确响应,但是,我实际上看不到数据,它只是一个空白页。

这是编写 XML 的 php 文件:

<?php
  include("classes/database_connection.php");

    function parseToXML($htmlStr) 
       { 
        $xmlStr=str_replace('<','&lt;',$htmlStr); 
        $xmlStr=str_replace('>','&gt;',$xmlStr); 
        $xmlStr=str_replace('"','&quot;',$xmlStr); 
        $xmlStr=str_replace("'",'&#39;',$xmlStr); 
        $xmlStr=str_replace("&",'&amp;',$xmlStr); 
        return $xmlStr; 
        } 

        // Opens a connection to a MySQL server
        $connection=mysql_connect ('www.numyspace.co.uk', '*********', '************');
         if (!$connection) {
           die('Not connected : ' . mysql_error());
           }


         $db_selected = mysql_select_db('********', $connection);
           if (!$db_selected) {
            die ('Can\'t use db : ' . mysql_error());
            }


        // Select all the rows in the ticket table
       $query = "SELECT * FROM ticket";
       $result = mysql_query($query);


       header("Content-type: text/xml");

       // Start XML file, echo parent node
       echo '<ticket>';

       while ($row = @mysql_fetch_assoc($result)){
       // ADD TO XML DOCUMENT NODE
       echo '<tickets ';
       echo 'ticketID="' . parseToXML($row['ticketID']) . '" ';
       echo 'locationID="' . parseToXML($row['locationID']) . '" ';
       echo 'venue="' . parseToXML($row['venue']) . '" ';
       echo 'tPrice="' . parseToXML($row['tPrice']) . '" ';
       echo 'date="' . parseToXML($row['date']) . '" ';
       echo 'availability="' . parseToXML($row['availability']) . '" ';
       echo 'time="' . parseToXML($row['time']) . '" ';
       echo 'lat="' . $row['lat'] . '" ';
       echo 'lng="' . $row['lng'] . '" ';
       echo '/>';
     }

   // End XML file
   echo '</ticket>';

?>

谢谢您,非常感谢您的帮助。

编辑:页面的标记:

 <ticket><tickets ticketID="1" locationID="1" venue="The Cluny" tPrice="15" date="2012-04-17" availability="200" time="20:00:00" lat="54.978252" lng="-1.617780" /><tickets ticketID="2" locationID="1"..../></ticket>

【问题讨论】:

  • 你查看源代码了吗?有标记吗?
  • 您能否提供一个生成标记的示例?在标题调用之前页面是否有任何输出?
  • 检查我的编辑 :) 不,在“输出”之前什么都没有回显..
  • 您最后一个&lt;tickets&gt; 节点末尾的.... 是故意的吗?另外,这很重要,标记开头的 SPACE 是代码的结果还是您刚刚将其粘贴到上面?
  • 这些点是故意的,因为源显示了“ticket”表中的所有字段,我不想全部 C+P。而且空格只是我粘贴代码的时候,那是无意的,输出的开头没有空格。

标签: php mysql sql xml


【解决方案1】:

确保您的 XML 顶部有 XML 声明。

echo "<?xml version='1.0' ?>";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2013-01-27
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多