我有一个包含制造商列表的文本文件。如何通过PHP读取文件的行并编写一个新的XML文件,其中包含每行文本文件(制造商的名称)上的所有字符?
文字档案
Sony
Pioneer
Boss
要编写的XML文件如下所示:
<data>
<manufacturer>Sony</manufacturer>
<manufacturer>Pioneer</manufacturer>
<manufacturer>Boss</manufacturer>
</data>
答案 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());
此外,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);