2011-07-19 83 views
0

我有一個包含製造商列表的文本文件。我如何通過PHP讀取文件的行並編寫一個新的XML文件,其中包含每行文本文件(製造商名稱)上的所有字符?將文本文件內容轉換爲XML

文本文件:

Sony 
Pioneer 
Boss 

XML文件寫到應該是這樣的:

<data> 
<manufacturer>Sony</manufacturer> 
<manufacturer>Pioneer</manufacturer> 
<manufacturer>Boss</manufacturer> 
</data> 

回答

4

我會使用file()打開該文件,DOMDocument (或者您可以使用SimpleXML)來構建XML結構和file_put_contents()用於將生成的XML保存到文件。

$manufacturers = file('manufactures.txt'); 

$dom = new DOMDocument; 

$data = $dom->createElement('data'); 

$dom->appendChild($data); 

foreach($manufacturers as $manufacturer) { 
    $manufacturerElement = $dom->createElement('manufacturer'); 
    $text = $dom->createTextNode($manufacturer); 
    $manufacturerElement->appendChild($text); 
    $data->appendChild($manufacturerElement); 
} 

file_put_contents('manufactures.xml', $dom->saveXML()); 

CodePad

另外,Dan Grossman's answer答案有一個好主意,在插入它之前在文本節點上使用trim()

2
$lines = file('something.txt'); 

$xml = "<data>\n"; 
foreach ($lines as $line) { 
    $xml .= "<manufacturer>" . trim($line) . "</manufacturer>\n"; 
} 
$xml .= "</data>"; 

file_put_contents('something.xml', $xml); 
+1

哦親愛的,請不要把XML當作文字......你必須手動處理字符編碼 –