簡體   English   中英

使用 PHP DOM 從 MySQL 數據創建 XML 個文件

[英]Using PHP DOM to create XML files from MySQL data

我已經創建了一個 MySQL 表,並希望將表的內容保存在一個 XML 文件中以供其他應用程序使用。 我可以很好地訪問數據並在瀏覽器 window 上回顯數據,但是在使用 DomDocument::save('thexmlfile.xml') 保存時,我看不到在正在運行的 PHP 文件的目錄位置中創建的任何新文件。

您將必須從 mysql 數據創建 dom xml,然后將其保存在 xml 文件中。示例:

$sql = 'select * from messages';
$run = mysql_query($sql, $link);

if( $run && mysql_num_rows( $run ) ) {
    $doc = new DOMDocument( '1.0' );
    $doc->formatOutput = true;
    $doc->preserveWhiteSpace = true;

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

    while( ( $fetch = mysql_fetch_assoc( $run ) )!== false ) {
        $node = $doc->createElement( 'node' );
        $root->appendChild( $node );

        foreach( $fetch as $key => $value ) {
            createNodes( $key, $value, $doc, $node );
        }
    }
    $doc->save("thexmlfile.xml");
}

function createNodes( $key, $value, $doc, $node ) {
    $key = $doc->createElement( $key );
    $node->appendChild( $key );
    $key->appendChild( $doc->createTextNode( $value ) );
}

現在,您應該會看到 xml 文件。

希望能幫助到你。

嗯,你的問題是關於DOM ,接受的答案是關於DOM ,但你似乎不需要這個功能,然后 libxml 的兄弟SimpleXML似乎更直接......我認為你的問題早就結束了,但只是為了完整起見:

$sql = 'select * from messages';
$run = mysql_query($sql, $link);

if( $run && mysql_num_rows( $run ) ) {
    $xml = new SimpleXMLElement('<data/>');
    while($fetch = mysql_fetch_assoc($run)) {
        $node = $root->addChild('node');
        foreach( $fetch as $key => $value ) {
            $node->addChild($key,$value);
        }
    }
    $xml->asXML("thexmlfile.xml");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM