PHPでXMLを生成してダウンロードするサンプルです。
サンプルソース
例)xmlデータを作成する
<?php
//Domを生成
$dom = new DomDocument('1.0', 'utf-8');
$dom->formatOutput = true;
//親要素を定義
$root = $dom->appendChild($dom->createElement('root'));
$data1 = $root->appendChild($dom->createElement('data1'));
$data2 = $root->appendChild($dom->createElement('data2'));
//data1の子要素を定義
$data1->appendChild($dom->createElement('note', '都道府県'));
//data2の子要素を定義
//要素1
$pref = $data2->appendChild($dom->createElement('pref'));
$pref->appendChild($dom->createElement('name', '北海道'));
$pref->appendChild($dom->createElement('cd', '01'));
//要素2
$pref = $data2->appendChild($dom->createElement('pref'));
$pref->appendChild($dom->createElement('name', '青森県'));
$pref->appendChild($dom->createElement('cd', '02'));
//要素3
$pref = $data2->appendChild($dom->createElement('pref'));
$pref->appendChild($dom->createElement('name', '岩手県'));
$pref->appendChild($dom->createElement('cd', '03'));
//要素4
$pref = $data2->appendChild($dom->createElement('pref'));
$pref->appendChild($dom->createElement('name', '宮城県'));
$pref->appendChild($dom->createElement('cd', '04'));
//XML出力
$fileName = 'pref.xml';
header('Content-Type: application/xml');
header('Content-Disposition: attachment; filename='.$fileName);
echo $dom->saveXML();
結果
<?xml version="1.0" encoding="utf-8"?>
<root>
<data1>
<note>都道府県</note>
</data1>
<data2>
<pref>
<name>北海道</name>
<cd>01</cd>
</pref>
<pref>
<name>青森県</name>
<cd>02</cd>
</pref>
<pref>
<name>岩手県</name>
<cd>03</cd>
</pref>
<pref>
<name>宮城県</name>
<cd>04</cd>
</pref>
</data2>
</root>