2017-06-26 14 views
0

次のコードがオンラインで見つかりました。 私はCSVファイルをXMLファイルに変換する必要があります。 私が変更する必要があるのは、下の例のようにrssバージョンの行に同じXML構造を出力するコードを作成することです。出力するためにPHPを使用したCSV2XML - XMLを出力する行を追加する必要があります

<channel> 
<item> 
<title> 
    <![CDATA[ pablo1 ]]> 
</title> 
<description> 
    <![CDATA[ this is description 1 ]]> 
</description> 
<link> 
    <![CDATA[ http://www.link1.com ]]> 
</link> 
</item> 
</channel> 

誰かがコードを更新する方法を知っている次のXML構造:

<?php 
    // Map CSV file to array 
     $rows = array_map('str_getcsv', file('data.csv')); 
     $header = array_shift($rows); 
     $data = array(); 
     foreach ($rows as $row) 
     { 
     $data[] = array_combine($header, $row); 
     } 
    // Process Data if need be 
     foreach($data AS $key => $val) 
    { 
     // Processing here 
     } 
     //Creates XML string and XML document using the DOM 
     $xml = new DomDocument('1.0', 'UTF-8'); 

     //Add root node 
     $root = $xml->createElement('channel'); 
     $xml->appendChild($root); 

     // Add child nodes 
     foreach($data AS $key => $val) 
    { 
$entry = $xml->createElement('item'); 
$root->appendChild($entry); 

foreach($val AS $field_name => $field_value) 
{ 
    $field_name = preg_replace("/[^A-Za-z0-9]/", '', $field_name); // preg_replace has the allowed characters 
    $name = $entry->appendChild($xml->createElement($field_name)); 
    $name->appendChild($xml->createCDATASection($field_value)); 
    } 
} 
// Set the formatOutput attribute of xml to true 
$xml->formatOutput = true; 
// Output to screen 
// header('Content-Type: text/xml'); 
// echo $xml->saveXML(); 
// Save as file 
    $xml->save('xml-import.xml'); // save as file 
    ?> 

上記のコードは、以下のXML構造を出力?基本的には、rss version = "2.0"行を追加する必要があります。

<rss version="2.0"> 
<channel> 
    <item> 
    <title> 
    <![CDATA[ pablo1 ]]> 
    </title> 
    <description> 
    <![CDATA[ this is description 1 ]]> 
    </description> 
    <link> 
    <![CDATA[ http://www.link1.com ]]> 
    </link> 
    </item> 
</channel> 
</rss> 

ありがとうございました!

答えて

0

あなたが巣要素...

$root = $xml->createElement('channel'); 
$rss = $xml->createElement('rss'); 
$rss->setAttribute("version","2.0"); 
$rss->appendChild($root); 
$xml->appendChild($rss); 
+0

パーフェクトでき​​るが、それは動作しますが、あなたのナイジェルに感謝します! –

関連する問題