次の XML 文字列を生成します
encoding="utf-8"?>
;/content> ;
方法 I. [文字列の生成]
純粋な PHP コードを使用して文字列を生成し、その文字列を XML をサフィックスとしてファイルに書き込みます。これは XML を生成する最も原始的な方法ですが、うまくいきます。
コードをコピー
コードは次のとおりです:
$data_array = array(
array(
'content' => 'content2', 'pubdate' => '2009-11-11', ));$title_size = 1;
$xml = "n";$xml 。 = "< ;article>n";
foreach ($data_array as $data) {
$xml .= create_item($data['title'], $title_size, $data['content'], $ data[' pubdate']);
}
$xml .= "n";
echo $xml;
// XML 単一アイテムを作成
function create_item( $title_data, $ title_size, $content_data, $pubdate_data)
{
$item = "
$item .= "
$item .= "n";
$item .= "
$item .= "
return $item;
}
? >
方法 2: [DomDocument]
DomDocument を使用して XML ファイルを生成し、createElement メソッドを使用してノードを作成し、createTextNode メソッドを使用してテキスト コンテンツを作成し、子を追加します。 appendChild メソッドを使用してノードを作成し、属性を作成します。 createAttribute メソッド
を使用してコード
をコピーします。 コードは次のとおりです。
$data_array = array(
array(
'title' => 'title1',
'content' => 'content1',
'pubdate' => '2009-10-11',
),
array(
'title' => 'title2',
'content' => 'content2 ',
'pubdate' => '2009-11-11',
)
);
// 属性配列
$attribute_array = array(
'title' = > 配列(
'size' => 1
)
);
// XML ドキュメントを作成し、XML バージョンとエンコーディングを設定します。 。
$dom=new DomDocument('1.0', 'utf-8');
// ルートノードを作成します
$article = $dom->createElement('article');
$ dom->appendchild($article);
foreach ($data_array as $data) {
$item = $dom->createElement('item');
$article->appendchild( $item);
create_item($dom, $item, $data, $attribute_array);
}
echo $dom->saveXML();
function create_item($dom, $item , $data, $attribute) {
if (is_array($data)) {
foreach ($data as $key => $val) {
$$key = $dom->createElement ($key); ($attribute[$key] as $akey => $row) {
$$key- >appendchild($$akey);
gt;appendChild($aval); 🎜> 🎜> メソッド 3: [XMLWriter]
このメソッドは、PHP 5.1.2 以降で有効です。さらに、複数の XML エンコーディングを出力できますが、入力は utf-8 のみです。
コードをコピー
コードは次のとおりです:
$data_array = array(
array(
'title' => 'title1',
'content' => 'content1',
'pubdate' => '2009-10-11',
),
array(
'title' => 'title2',
'content' => 'content2 ',
'pubdate' => '2009-11-11',
)
);
// 属性配列
$attribute_array = array(
'title' = > 配列(
'size' => 1
)
);
$xml = new XMLWriter();
$xml->openUri("php://output ");
// 出力メソッドを XML ファイルのアドレスに設定して、ファイルに直接出力することもできます
$xml->setIndentString(' ');
$xml->setIndent(true );
$xml->startDocument('1.0', 'utf-8');
// ファイルの作成を開始
// ルートノード
$xml->startElement('article') ;
foreach ($data_array as $data) {
$xml->startElement('item');
if (is_array($data)) {
foreach ($data as $key) =&gt; $ row){
($ akey、$ aval);
}
$ xml-&gt; endelement(); >$xml->endElement(); // 記事
$xml->endDocument();
$xml ->flush();
方法 4: [SimpleXML]
SimpleXML を使用して XML ドキュメントを作成します
コードをコピーします
コードは次のとおりです:
), array( 'title' => 'title2', 'content' => ' content2', 'pubdate' => '2009-11-11',
));
/ / 属性配列
$attribute_array = array(
'title' => 配列(
'サイズ' => 1
)
);
$string = << ;
XML;
$ xml = simplexml_load_string($string);
foreach ($data_array as $ data) {
$item = $xml->addChild('item');
if (is_array($data)) {
foreach ($data as $key => $row) {
$node = $item->addChild($key, $row);
if (isset($attribute_array[$key] ) && is_array($attribute_array[$key]))
$node ->addAttribute($akey, $aval);
}
}
}
}
}
echo $xml->asXML();
?> ;