簡體   English   中英

用php創建正確的XML格式

[英]Create proper XML format with php

我創建xml文件的嘗試已接近完成,但是我遇到了一兩個麻煩。

通過mysql_connect()從數據庫中提取數據

$sql = "SELECT `entity_id`,`name` FROM `table`

所需的輸出是:

<?xml version="1.0" encoding="utf-8"?>
<content>
    <item>
        <id>1</id>
        <name><![CDATA[name1]]</name>
    </item>
    <item>
        <id>2</id>
        <name><![CDATA[name2]]</name>
    </item>
</content>

現在,我一直在嘗試通過DOMDocument來執行此操作,但是縮進正確

$doc = new DOMDocument( '1.0', 'utf-8' );
$ele = $doc->createElement( 'content' );

    while ($row = mysql_fetch_assoc($res)) {

    $ele = $doc->createElement( 'id' );
    $ele->nodeValue = $row['entity_id'];
    $doc->appendChild( $ele );

    $ele = $doc->createElement( 'name' );
    $ele->nodeValue = $row['name'];
    $doc->appendChild( $ele );

    };

$doc->appendChild( $ele );
$doc->save('MyXmlFile.xml');

但這輸出:

<?xml version="1.0" encoding="utf-8"?>
    <id>1</id>
    <name>name1</name>
    <id>2</id>
    <name>name2</name>

如何將結果提高到兒童水平? (主要問題),然后我必須弄清楚如何在文本數據周圍包裝CDATA標簽?

是否采取了XMLWriter路線來解決此問題:

$xml = new XMLWriter();

$xml->openURI('myxmlfile.xml');
$xml->startDocument('1.0', 'utf-8');
$xml->setIndent(true);
$xml->startElement('content');

while ($row = mysql_fetch_assoc($res)) {

    $xml->startElement('item');

        $xml->startElement("id");
        $xml->writeRaw("$row['entity_id']);
        $xml->endElement();

        $xml->startElement("name");
        $xml->writeCData(utf8_encode ($row['name']));
        $xml->endElement();

    $xml->endElement();
    }

$xml->endElement();

$xml->flush();

暫無
暫無

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

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