PHPでSimpleXMLを使用してxmlの作成を行います。
プログラム
<?php $rootNode = new SimpleXMLElement( "<?xml version='1.0' encoding='SHIFT_JIS' standalone='yes'?><items></items>" ); // ノードの追加 $itemNode = $rootNode->addChild('item'); $itemNode->addChild( 'itemCode', 'mk' ); $itemNode->addChild( 'itemName', 'orange' ); $itemNode = $rootNode->addChild('item'); $itemNode->addChild( 'itemCode', 'ap' ); $itemNode->addChild( 'itemName', 'apple' ); $itemNode = $rootNode->addChild('item'); $itemNode->addChild( 'itemCode', 'tof' ); $itemNode->addChild( 'itemName', '豆腐' ); // ノードに属性を追加 $itemNode->addAttribute('stock', 'none'); // 作ったxmlツリーを出力する echo $rootNode->asXML(); |
実行結果
<?xml version="1.0" encoding="SHIFT_JIS" standalone="yes"?> <items><item><itemCode>mk</itemCode><itemName>orange</itemName></item><item><itemCode>ap</itemCode><itemName>apple</itemName></item><item stock="none"><itemCode>tof</itemCode><itemName>豆腐</itemName></item></items> |
asXML()でxmlが出力されますが、改行が入らないので人が見たときに可読性に劣ります。
このような場合は、SimpleXMLを利用すると綺麗にインデントされます。
プログラム(最初のプログラムのasXMLを以下のコードに置き換える)
$dom = new DOMDocument( '1.0' ); $dom->loadXML( $rootNode->asXML() ); $dom->formatOutput = true; echo $dom->saveXML(); |
実行結果
<?xml version="1.0" encoding="SHIFT_JIS" standalone="yes"?> <items> <item> <itemCode>mk</itemCode> <itemName>orange</itemName> </item> <item> <itemCode>ap</itemCode> <itemName>apple</itemName> </item> <item stock="none"> <itemCode>tof</itemCode> <itemName>豆腐</itemName> </item> </items> |
これでだいぶ見やすくなりました。
関連記事
コメントを残す