выводить или записывать в xml-файл?

$fp = fopen('data.txt', 'r'); $xml = new SimpleXMLElement('<allproperty></allproperty>'); while ($line = fgetcsv($fp)) { if (count($line) < 4) continue; // skip lines that aren't full $node = $xml->addChild('aproperty'); $node->addChild('postcode', $line[0]); $node->addChild('price', $line[1]); $node->addChild('imagefilename', $line[2]); $node->addChild('visits', $line[3]); } echo $xml->saveXML(); 

im, используя этот скрипт для преобразования текстового файла в XML-файл, но я хочу вывести его в файл, как я могу сделать это simpleXML, приветствует

Related of "выводить или записывать в xml-файл?"

Функция file_put_contents сделает это. Функция принимает имя файла и некоторый контент и сохраняет его в файле.

Поэтому, повторив ваш пример, вы просто замените инструкцию echo file_put_contents .

 $xml = new SimpleXMLElement('<allproperty></allproperty>'); $fp = fopen('data.txt', 'r'); while ($line = fgetcsv($fp)) { if (count($line) < 4) continue; // skip lines that aren't full $node = $xml->addChild('aproperty'); $node->addChild('postcode', $line[0]); $node->addChild('price', $line[1]); $node->addChild('imagefilename', $line[2]); $node->addChild('visits', $line[3]); } file_put_contents('data_out.xml',$xml->saveXML()); 

Для записи вы можете использовать asXML () для этого. Я имею в виду, что он находится прямо в руководстве , просто прочитайте его, и ваша жизнь станет легче. (Я полагаю, возможно, попросить StackOverflow для базовых вещей для некоторых проще)

Кроме того, и это более обстоятельно, вам необязательно использовать addChild() для каждого ребенка. Если дочерний элемент этого имени отсутствует, его можно назначить напрямую, используя обозначение свойства объекта:

 $fp = fopen('data.txt', 'r'); $xml = new SimpleXMLElement('<allproperty />'); while ($line = fgetcsv($fp)) { if (count($line) < 4) continue; // skip lines that aren't full $node = $xml->addChild('aproperty'); $node->postcode = $line[0]; $node->price = $line[1]; $node->imagefilename = $line[2]; $node->visits = $line[3]; } $xml->asXML('data.xml');