将MYSQL表数据直接转换为PHP中的XML

时间:2012-09-25 05:29:36

标签: php mysql xml

我想现在是否有一些内置函数在执行SELECT查询后直接从MYSQL结果集创建XML?

3 个答案:

答案 0 :(得分:3)

我刚刚写了这个,然后想到id搜索,看看是否有其他人写过它。它看起来比接受的答案教程简单。我的$ results来自$ result = mysql_query($ query,$ link);

$xmlDom = new DOMDocument();
$xmlDom->appendChild($xmlDom->createElement('results'));
$xmlRoot = $xmlDom->documentElement;

while ( $row = mysql_fetch_row($result) ) 
    {
      $xmlRowElementNode = $xmlDom->createElement('row');

      $i=0;
      for($i=0;$i<mysql_num_fields($result);$i++)
      {
          $xmlRowElement = $xmlDom->createElement(mysql_field_name($result,$i));
          $xmlText = $xmlDom->createTextNode($row[$i]);
            $xmlRowElement->appendChild($xmlText);

            $xmlRowElementNode->appendChild($xmlRowElement);
      }

      $xmlRoot->appendChild($xmlRowElementNode);
   }


    header('Content-type:  text/xml');
    echo $xmlDom->saveXML();

这将以

的形式生成XML
<results>
    <row1>
         <fieldname1>value</fieldname1>
         <fieldname2>value</fieldname2>
         <fieldname3>value</fieldname3>
         <fieldname4...>value</fieldname4...>
    </row1>
    <row2>
         <fieldname1>value</fieldname1>
         <fieldname2>value</fieldname2>
         <fieldname3>value</fieldname3>
         <fieldname4...>value</fieldname4...>
    </row2>
    <row3...>
         <fieldname1>value</fieldname1>
         <fieldname2>value</fieldname2>
         <fieldname3>value</fieldname3>
         <fieldname4...>value</fieldname4...>
    </row3...>
</results>

对于任何SELECT查询。

答案 1 :(得分:2)

在执行SELECT查询后,没有内置函数可以直接从MYSQL结果集创建XML。

您必须为此

编写代码

一些很好的教程就是这个..

http://www.codediesel.com/php/converting-mysql-queries-to-xml/

http://www.mightywebdeveloper.com/coding/mysql-to-xml-php/

答案 2 :(得分:1)

通常,您的MySQL结果将作为数组或对象返回,然后您可以将其转换为XML或其他格式。您可以使用SimpleXML,这里已经解释过:How to convert array to SimpleXML