Search code examples
phpxmlsimplexmlxmlwriter

output or write to a xml file?


$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 using this script to convert text file into a xml file, but i want to output it to a file, how can i do this simpleXML, cheers


Solution

  • file_put_contents function would do it. The function take a filename and some content and save it to the file.

    So retaking your example you would just to replace the echo statement by 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());