将文本文件内容转换为XML

时间:2011-07-19 01:10:40

标签: php xml

我有一个包含制造商列表的文本文件。如何通过PHP读取文件的行并编写一个新的XML文件,其中包含每行文本文件(制造商的名称)上的所有字符?

文字档案

Sony
Pioneer
Boss

要编写的XML文件如下所示:

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

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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);