使用php从mysql db创建一个xml文件

时间:2011-03-15 14:32:08

标签: php mysql xml

我试图使用php.everytime创建一个xml文件我运行代码页面显示某个点的代码作为屏幕上的文本。我的代码如下:

<?php
    if(!$dbconnet = mysql_connect('I took out the details')){
        echo "connection failed to the host.";
        exit;
    }
    if (!mysql_select_db('siamsati_db')){
        echo "Cannot connect to the database.";
        exit;
    }
    $table_id = 'events';
    $query = "SELECT * FROM $table_id";
    $dbresult = mysql_query($query, $dbconnect);

    $doc = new DomDocument('1.0');

    $root = $doc->createElement('root');
    $root = $doc->appendChild($root);

    while($row = mysql_fetch_assoc($dbresult)){
        $ooc = $doc->createElement($table_id);
        $occ = $root->appendChild($occ);

        foreach ( $row as $fieldname => $fieldvalue){

            $child = $doc->createElement($fieldname);
            $child = $occ->appendchild($child);

            $value = $doc->createTextNode($fieldvalue);
            $value = $child->appendChild($value);
        }
    }

    $xml_string = $doc->saveXML();
    echo $xml_string;

?>

,显示的页面显示:

  

的createElement( '根'); $ root =   $ doc-&GT;使用appendChild($根);而($ row =   mysql_fetch_assoc($ dbresult)){$ ooc =   $ doc-&GT;的createElement($的table_id); $ occ =   $根 - &GT;使用appendChild($ OCC); foreach(   $ row as $ fieldname =&gt; $ fieldValue方法){   $ child =   $ doc-&GT;的createElement($字段名);   $ child = $ occ-&gt; appendchild($ child);   $ value =   $ doc-&GT;一个createTextNode($ fieldValue方法);   $ value = $ child-&gt; appendChild($ value);   $ xml_string = $ doc-&gt; saveXML();   echo $ xml_string; ?&GT;

有什么东西我错过了。检查所有的引用,认为这是一开始,但他们似乎都是正确的。有什么建议我做错了很受赞赏?

2 个答案:

答案 0 :(得分:0)

在您发布的代码中,缺少初始<?php标记...

答案 1 :(得分:0)

将内容类型设置为XML,以便浏览器将其识别为XML。

header( "content-type: application/xml; charset=ISO-8859-15" );

在您的代码中将其更改为:

// Set the content type to be XML, so that the browser will   recognise it as XML.
header( "content-type: application/xml; charset=ISO-8859-15" );

// "Create" the document.
$doc = new DOMDocument( "1.0", "ISO-8859-15" );

+++我认为你可以做这样的事情

<root>
<?
   foreach ( $row as $fieldname => $fieldvalue){
    ?>
    <events>
        <fieldname><?=fieldname; ?></fieldname>
        <fieldvalue><?=$fieldvalue; ?></fieldvalue>
    </events>
    }
?>
</root>