XBRLのお勉強3 (PHPで解析)
※以前別の場所で書いた文章を備忘的に書き記しておきます。
【投稿年月日】2010-11-24 【ジャンル】PHP/MySQL | 独り言
XBRLのお勉強とXBRLのお勉強2 (EDINETとEDGAR)に続き、実際にPHPでのXBRLの解析を行ってみました。1.xbrlファイルのダウンロード
xbrlファイルがなければ話は進みまないのでEDINETから取得します。サンプルとして 日本セラミック株式会社の有価証券報告書をダウンロードします。
2.xbrlファイルの解析
ダウンロードした「XBRL_20101122_112738.zip」を解凍すると、以下のファイル群が現われます。この中で最も重要なファイルが「jpfr-asr-E01988-000-2009-12-31-01-2010-03-30.xbrl」です。xbrl化された財務情報が記述されています。データを加工しやすくするために、xbrlファイルをSimpleXMLで読み込み、グループごとにオブジェクトに格納します。
<?php
$xml = simplexml_load_file("jpfr-asr-E01988-000-2009-12-31-01-2010-03-30.xbrl");
foreach($xml->getDocNamespaces() as $id=>$name) {
$obj[$id][] = $xml->children($name);
}
var_dump($obj);
?>
極めて短いコードでxbrlの要素をオブジェクトに格納することができました。これでグループごとに展開したり、配列化したりすることが容易になりました。$xml = simplexml_load_file("jpfr-asr-E01988-000-2009-12-31-01-2010-03-30.xbrl");
foreach($xml->getDocNamespaces() as $id=>$name) {
$obj[$id][] = $xml->children($name);
}
var_dump($obj);
?>
xbrlは名前空間が定義されている(「:」が付加されている)ので、RSSの解析とは異なり、かなり面倒でした。と言うより、私自身がXMLの名前空間について半端な理解しかしていなかったので苦労しました。(涙)
参考にしたサイトは以下の通りです。
PHP: SimpleXML - Manual
www.php.net/manual/ja/book.simplexml.php
SimpleXMLで名前空間付きタグの一覧を取得するCommentsAdd Starriafkakku22
d.hatena.ne.jp/sotarok/20080914/welcome_to_the_...
XML名前空間の簡単な説明
www.kanzaki.com/docs/sw/names.html
次は解析結果をもとにプログラムを構築していきたいと思います。(公開日は未定)
EDIUNET | PHP/MySQL | 独り言 | 提供サービス | JavaScript