[英]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.