PHP を使用して XML ファイルを生成する 4 つの方法
方法 1: 純粋な PHP コードを使用して文字列を生成します。 XML をサフィックスとしてファイルに文字列を書き込みます。これは XML を生成する最も原始的な方法ですが、うまくいきます。
PHP コードは次のとおりです:
$data_array = array(
array(
'title' => 'title1',
'content' => 'content1',
'pubdate' => ; ' 2009-10-11',
),
array(
'title' => 'title2',
'content' => 'content2',
'pubdate' => '2009-11-11 ',
)
);
$title_size = 1;
$xml = "n"; ;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 .= "
return $item;
}
?>
【DomDocument】
方法 2: DomDocument を使用して XML ファイルを生成
createElement メソッドを使用してノードを作成、
createTextNode メソッド、
Add sub- ノードは appendChild メソッドを使用し、
createAttribute メソッドを使用して属性を作成します。PHP コードは次のとおりです。
$data_array = array(
array(
'title' =>) ; 'title1',
'content' => ' content1',
'pubdate' => '2009-10-11',
),
array(
'title' => 'title2',
'content' => 'content2',
'pubdate' => '2009-11-11',
)
);
// 属性配列
$attribute_array = array(
'size ' => 1
)
)// XML ドキュメントを作成し、XML バージョンとエンコーディングを設定します。 。
$dom=new DomDocument('1.0', 'utf-8');
// ルートノードを作成する
$article = $dom->createElement('article');
$dom->appendchild($)記事);
foreach ($data_array として $data) {
$item = $dom->createElement('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);
$item->appendchild($$key);
//要素の値を作成する
$text = $dom->createTextNode($val);
$$key->appendchild($text);
if (isset($attribute[$key])) {
// このフィールドに関連する属性がある場合は、設定する必要があります
foreach ($attribute[$key] as $akey => $row) {
// 属性ノードを作成します
$$akey = $dom-> createAttribute($akey );
$$key->appendchild($$akey);
// 属性値ノードを作成します
$aval = $dom->createTextNode($row); appendChild($aval );
}
} // end if
}
} // end if
} // end function
?> 2 以降有効
さらに、XML の複数のエンコーディングを出力できますが、入力はutf-8 のみです
PHP コードは次のとおりです:
$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' => array(
'size' => 1
)
);
$xml = new XMLWriter(); 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 => $row) {
$xml->startElement ( $key);
if (isset($attribute_array[$key]) && is_array($attribute_array[$key]))
{
foreach ($attribute_array[$key] as $akey => $aval) {
// 属性値を設定
$xml->writeAttribute($akey, $aval)
}
}
$xml->text($row); // 内容を設定
$xml->endElement ( ); // $key
}
}
$xml->endElement(); // アイテム
}
$xml->endElement(); // 記事
$xml->endDocument(); ;
$xml->flush();
?>
【SimpleXML】
方法 4: SimpleXML を使用して XML ドキュメントを作成する
$data_array(
'title ' => 'タイトル 1',
'コンテンツ' => 'コンテンツ 1',
'公開日' => '2009-10-11',
array(
'タイトル' => 'タイトル 2' ,
' content' => 'content2',
'pubdate' => '2009-11-11',
)
)// 属性配列
$attribute_array = array(
'title' => ; array(
'size' => 1
)
);
$string = <<
$xml = simplexml_load_string($string);
$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]))
{
foreach ($attribute_array[$key] as $akey => $aval) {
//属性値を設定します
$node-> addAttribute($ akey, $aval);
}
}
}
}
echo $xml->asXML()?>
http://www.bkjia.com/PHPjc/363956.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/363956.html
PHP を使用して XML ファイルを生成する 4 つの方法?