2011-05-31 36 views
2

我是PHP和XML的初學者。在PHP中包含XML編碼

有人可以告訴我如何在編寫新的xml文件時包含XML編碼。

這裏是代碼:

writexml.php

<?php 
$ids = array("1", "2", "3", "4", "5"); 
$names = array("Jean Claude Van Damme", "Scott Adkins", "Dolph Ludgren", "Michael Jai White", "Michael Worth"); 

$domdoc = new DOMDocument(); 
$domdoc->formatOutput = true; 

$el_actionstars = $domdoc->createElement("actionstars"); 
$domdoc->appendChild($el_actionstars ); 

$arr_size = count($ids); 

for ($i=0; $i < $arr_size; $i++) { 
    $el_actionstar = $domdoc->createElement("actionstar"); 

    $el_id = $domdoc->createElement("id"); 
    $el_id->appendChild($domdoc->createTextNode($ids[$i] . "")); 
    $el_actionstar->appendChild($el_id); 

    $el_name = $domdoc->createElement("name"); 
    $el_name->appendChild($domdoc->createTextNode($names[$i] . "")); 
    $el_actionstar->appendChild($el_name); 


    $el_actionstars->appendChild($el_actionstar); 
} 

echo $domdoc->saveXML(); 
$domdoc->save("actionstars.xml") 
?> 

XML輸出是<?xml version="1.0"?>,我想補充的編碼使它看起來像<?xml version="1.0" encoding="ISO-8859-1"?>。請幫助...

+0

[複製](http://stackoverflow.com/questions/869650/getting-simplexmlelement-to-include-the-encoding-in-output) – 2011-05-31 07:07:20

+0

爲[DOM文檔:: __構建體的例子](http://de3.php.net/manual/en/domdocument.construct.php)顯示瞭如何做到這一點。在提出明顯的答案之前,請參閱手冊。 – Gordon 2011-05-31 07:16:45

+0

大聲笑。有人注入更多的愛... – tofutim 2011-05-31 07:19:36

回答

4

http://php.net/manual/en/domdocument.savexml.php

底部。當你保存整個文件: 上一層> saveXML()在屬性定義 上一層>編碼編碼產生串 。

當只保存一個節點時: DOMDocument-> saveXML(DOMNode)在UTF-8中總是產生 字符串。

您可以設置它在構造函數中

DOMDocument::__construct ([ string $version [, string $encoding ]]) 

例如,

$domdoc = new DOMDocument('1.0', 'iso-8859-1'); 
+0

你的意思是說,每當我將保存整個文件,我必須檢查DOMDocument->編碼? – 2011-05-31 07:09:55

+0

只需用你想要的編碼創建domdoc即可。 – tofutim 2011-05-31 07:16:09

1

嘗試用new DomDocument('1.0', 'UTF-8');