試験勉強です。今回は XSL 操作をやってみます。
前もって php.ini にて extension=php_xsl.dll
を有効にしておきます。
XML データを 以下のサイトから拝借します。
XML文書を作成する | XML徹底入門【わかりやすい図解解説】
そして XSL についても同じサイトの以下の記事から XSL のサンプルを写経します。
XSLTスタイルシートプログラミング(宣言) | XML徹底入門【わかりやすい図解解説】
サンプル
$xmlContents = <<<END_OF_XML <ゲーム所持リスト> <ゲーム情報> <管理コード>0001</管理コード> <ゲームタイトル>DARK SOULS ?</ゲームタイトル> <購入日>2013/3/14</購入日> <購入価格>4000</購入価格> </ゲーム情報> <ゲーム情報> <管理コード>0002</管理コード> <ゲームタイトル>モンスターハンター4G</ゲームタイトル> <購入日>2014/10/11</購入日> <購入価格>5800</購入価格> </ゲーム情報> <ゲーム情報> <管理コード>0003</管理コード> <ゲームタイトル>ドラゴンクエストヒーローズ 闇竜と世界樹の城</ゲームタイトル> <購入日>2015/2/26</購入日> <購入価格>5800</購入価格> </ゲーム情報> </ゲーム所持リスト> END_OF_XML; $xslContents = <<<END_OF_XSL <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" /> <xsl:template match="/"> <html> <head> <title><xsl:text>ゲーム所持リスト</xsl:text></title> <h1><xsl:text>ゲーム所持リスト</xsl:text></h1> <table> <tr> <th><xsl:text>ゲームタイトル</xsl:text></th> <th><xsl:text>購入日</xsl:text></th> <th><xsl:text>購入価格</xsl:text></th> </tr> <xsl:for-each select="ゲーム所持リスト/ゲーム情報"> <tr> <td><xsl:value-of select="ゲームタイトル" /></td> <td><xsl:value-of select="購入日" /></td> <td><xsl:value-of select="購入価格" /></td> </tr> </xsl:for-each> </table> </head> </html> </xsl:template> </xsl:stylesheet> END_OF_XSL; $xslDoc = new DOMDocument(); $xslDoc->loadXML($xslContents); $xmlDoc = new DOMDocument(); $xmlDoc->loadXML($xmlContents); $xslt = new XSLTProcessor(); $xslt->importStyleSheet($xslDoc); // ブラウザに表示する echo $xslt->transformToXML($xmlDoc); // HTML ファイルに書き込み、書き込んだバイト数をブラウザに表示する //echo $xslt->transformToURI($xmlDoc, 'file:///temp/out.html');
なるほど。