PHPでウェブの世界と繋がろう!
menu
ホーム > PHPサンプル > XML系 > xmlを作成したい 展開したい

xmlを作成したい 展開したい

Pocket

サンプルコード sample code
xmlの作成と展開
オブジェクト(SimpleXMLElement) = simplexml_load_string ( XML文字列 )

xml文字列を作成し、その文字列を simplexml_load_string() 関数を使用して、オブジェクトに代入します。そして、オブジェクトを展開することで、xmlデータを取得することが出来ます。

xml文字列を作成
<h3>xml文字列作成</h3>
<?php
//xml文字列を作成する配列を作成
$aXmlData = array();
$aXmlData&#91;0&#93; = array
                    (
                    'title' =>               'Yahoo',
                    'url' =>                 'http://www.yahoo.co.jp/',
                    'description' =>         'ポータルサイト'
                    );
 
$aXmlData[1] = array
                    (
                    'title' =>               'Google',
                    'url' =>                 'http://www.google.co.jp/',
                    'description' =>         '検索エンジン'
                    );
 
//xml文字列作成
$sStringXml = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$sStringXml .=  "<list>"."\n";
foreach($aXmlData as $value){
    $sStringXml .= "<item>";
    $sStringXml .= "<title>".$value['title']."</title>";
    $sStringXml .= "<url>".$value['url']."</url>";
    $sStringXml .= "<description>".$value['description']."</description>";
    $sStringXml .= "</item>"."\n";
}
$sStringXml .=  "</list>"."\n";
echo '[PHP ruler="true" toolbar="true"]'.htmlentities($sStringXml, ENT_QUOTES, 'UTF-8').'<\/pre>';
?>

結果は

<?xml version="1.0" encoding="UTF-8"?>
<list>
<item><title>Yahoo</title><url>http://www.yahoo.co.jp/</url><description>ポータルサイト</description></item>
<item><title>Google</title><url>http://www.google.co.jp/</url><description>検索エンジン</description></item>
</list>

となります。

xmlを展開
xml文字列をsimplexml_load_string() を使用してxmlをオブジェクトに代入して展開します。

<h3>xmlを展開</h3>
<?php
### xmlをオブジェクトに変換して代入
$xml = simplexml_load_string($sStringXml);

### オブジェクトを展開
foreach($xml->item as $value){
    $title =             $value->title;
    $url =               $value->url;
    $description =       $value->description;

    echo '---------------------------------------------<br/>';
    echo 'title:'.$title.'<br/>';
    echo 'url:'.$url.'<br/>';
    echo 'description:'.$description;
    echo '<br/>';
}
?>

結果は

———————————————
title:Yahoo
url:http://www.yahoo.co.jp/
description:ポータルサイト
———————————————
title:Google
url:http://www.google.co.jp/
description:検索エンジン

となります。

サンプルコード

– サンプル Click Here ! –

<?php $sTitle = 'xmlの作成と展開'; ?>
<?php $sPageUrl = 'http://www.tryphp.net/2012/03/02/phpsample-xml-create/'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta name="robots" content="index">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<head>
<title>TRYPHP! PHPサンプル <?php echo $sTitle; ?></title>
</head>
<body>
<h1>PHPサンプル <?php echo $sTitle; ?></h1>
<!-- 説明ページ -->
<h3><a href="<?php echo $sPageUrl; ?>">→説明はこちら</a></h3>
<hr/>






<h2>サンプルコード実行</h2>
<div style="background-color:#f8f8f8;margin:20px; padding:20px; border:solid #cccccc 1px;">
<!-- // =========================== ここから =========================== -->

<h3>xml文字列作成</h3>
<?php
//xml文字列を作成する配列を作成
$aXmlData = array();
$aXmlData&#91;0&#93; = array
                    (
                    'title' =>               'Yahoo',
                    'url' =>                 'http://www.yahoo.co.jp/',
                    'description' =>         'ポータルサイト'
                    );
 
$aXmlData[1] = array
                    (
                    'title' =>               'Google',
                    'url' =>                 'http://www.google.co.jp/',
                    'description' =>         '検索エンジン'
                    );

//xml文字列作成
$sStringXml = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$sStringXml .=  "<list>"."\n";
foreach($aXmlData as $value){
    $sStringXml .= "<item>";
    $sStringXml .= "<title>".$value['title']."</title>";
    $sStringXml .= "<url>".$value['url']."</url>";
    $sStringXml .= "<description>".$value['description']."</description>";
    $sStringXml .= "</item>"."\n";
}
$sStringXml .=  "</list>"."\n";
echo '[PHP ruler="true" toolbar="true"]'.htmlentities($sStringXml, ENT_QUOTES, 'UTF-8').'<\/pre>';
?>

<h3>xmlを展開</h3>
<?php
### xmlを作成
$xml = simplexml_load_string($sStringXml);

### xmlを展開
foreach($xml->item as $value){
    $title =             $value->title;
    $url =               $value->url;
    $description =       $value->description;

    echo '---------------------------------------------<br/>';
    echo 'title:'.$title.'<br/>';
    echo 'url:'.$url.'<br/>';
    echo 'description:'.$description;
    echo '<br/>';
}
?>

<!-- =========================== ここまで =========================== // -->
</div>
<hr/>






</body>
</html>
実行結果
xml文字列作成
<?xml version="1.0" encoding="UTF-8"?>
<list>
<item><title>Yahoo</title><url>http://www.yahoo.co.jp/</url><description>ポータルサイト</description></item>
<item><title>Google</title><url>http://www.google.co.jp/</url><description>検索エンジン</description></item>
</list>

xmlを展開
———————————————
title:Yahoo
url:http://www.yahoo.co.jp/
description:ポータルサイト
———————————————
title:Google
url:http://www.google.co.jp/
description:検索エンジン

– サンプル Click Here ! –


タグ(=記事関連ワード)

タグ: , ,

日付

投稿日:2012年3月2日
最終更新日:2014年02月20日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpsample-xml-create/trackback/