ホームページ > php教程 > php手册 > PHP で XML ファイルを生成する 4 つの方法を共有する

PHP で XML ファイルを生成する 4 つの方法を共有する

WBOY
リリース: 2016-06-13 11:57:31
オリジナル
928 人が閲覧しました

次の XML 文字列を生成します
encoding="utf-8"?>

;/content> ; 2009-10-11 🎜> title2</title<</span> </p><p class="codebody" id="code70205"><BR>方法 I. [文字列の生成] <BR><BR>純粋な PHP コードを使用して文字列を生成し、その文字列を XML をサフィックスとしてファイルに書き込みます。これは XML を生成する最も原始的な方法ですが、うまくいきます。 <BR><BR><BR><BR>コードをコピー<BR><BR> コードは次のとおりです:<BR><BR><BR><?PHP<BR>$data_array = array(<BR> array(</p> 'title' => 'title1',<br> 'content' => 'content1',<strong> 'pubdate' => '2009-10-11',<br> ), </strong> array(<br> 'title' => 'title2',<p class="codetitle"> 'content' => 'content2',<span style="CURSOR: pointer" onclick="doCopy('code61919')"> 'pubdate' => '2009-11-11',<u> )</u>);</span>$title_size = 1;</p>$xml = "<?xml version="1.0"coding="utf-8"?>n";<p class="codebody" id="code61919">$xml 。 = "< ;article>n";<br>foreach ($data_array as $data) {<br>$xml .= create_item($data['title'], $title_size, $data['content'], $ data[' pubdate']);<br>}<br>$xml .= "</article>n";<br>echo $xml;<br>// XML 単一アイテムを作成<br>function create_item( $title_data, $ title_size, $content_data, $pubdate_data)<br>{<br> $item = "<item>n";<BR> $item .= "<title size="" . $title_size . " ">" . $title_data . "n";
$item .= "n";
$item .= " " . $pubdate_data . "n";
$item .= "n";
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 ドキュメントを作成します



コードをコピーします

コードは次のとおりです:

$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' => 配列(
'サイズ' => 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();
?> ;


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート