1
$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();

このスクリプトを使用してテキストファイルをxmlファイルに変換しますが、ファイルに出力したいのですが、どうすればこのsimpleXMLを実行できますか?

4

2 に答える 2

6

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());
于 2010-12-15T02:40:25.097 に答える
1

記録としては、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');
于 2010-12-15T09:50:38.703 に答える