質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.62%

PHPの正規表現につきまして

解決済

回答 8

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,508

SugiuraY

score 249

お世話になっております。
チェッカーでは正しく“流動資産”という文字列を抽出できるのですが、php本体でうまくpreg_matchすることができません。
なお、HTMLは実際には.xbrlの拡張子で記載されるものの一部の抜粋になります。
なぜかチェッカーではうまく抽出はできます。
http://okumocchi.jp/php/re.php
どなたか、理由がお分かりの方
お力添えの程、宜しくお願い申しあえげます。

sample.xbrl
<span style="font-family: &apos;MS Mincho&apos;; font-size: 12px">流動資産
                </span>
                 </p>
<?php

$get=file_get_contents("sample.xbrl");
#echo($get);

preg_match_all('/font-size: 12px">(.+?)<\/span>/s', $get, $matches);
echo "<pre>";
print_r($matches);
echo"</pre>";
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • toutou

    2016/12/27 13:36

    preg_match_allの後ってあってます?

    キャンセル

  • SugiuraY

    2016/12/27 14:35

    ご回答有難うございます。特に相違はございません。宜しくお願い申し上げます。

    キャンセル

回答 8

checkベストアンサー

0

提示されているソースをそのままテストしてみたら、正常に動作しましたよ。

Array
(
[0] => Array
(
[0] => font-size: 12px">流動資産

)

[1] => Array
(
[0] => 流動資産

)

)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/27 14:29

    すみません、一点見落としがあり、上記のHTMLでは抽出できましたが、ファイルそのものからは抽出ができませんでした。ファイルの種類の問題なのでしょうか。。このサイトで対象ファイルを添付することは可能なのでしょうか?実際には世の中に公開されているファイルでget_file_contentsせずに、sample.xbrlそのものを取得することはできるのですが、、、

    キャンセル

  • 2016/12/27 14:30

    すみません、まずご回答に御礼を差し上げることを失念を致しました。
    改めまして、ご回答を頂き、有難うございます。

    キャンセル

0

var_dump($get)等で$getの内容を確認してみては如何でしょうか?もしかしたら、意図しない文字列が入っていたりしませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/27 17:17

    ご返信ありがとうございます。特に文字化けもしておらず、文字コードも全てUTF-8で統一されていることを確認しました。念のためにencodingもしてみましたが、、だめでした。

    キャンセル

  • 2016/12/27 17:28

    大変申し訳ございません、正規表現として抽出するPatternをHTMLのコードではなくブラウザ上の表示で実行しておりました、、
    重ねてお詫び申し上げえます。

    キャンセル

  • 2016/12/27 17:41

    ダウンロードしてみてみたのですが、'<'等がエスケープされていませんか?

    &lt;span style="font-family: &amp;apos;MS Mincho&amp;apos;; font-size: 12px"&gt;流動資産&lt;/span&gt;

    これに合わせて正規表現を組んだら変わったりしませんか?

    キャンセル

0

EDINET上のXBRL-FRのデータファイルには、日本語の勘定科目は振られていないので、CurrentAssetsで検索するとその金額なり、目的の会計期間なりが検索できます。
日本語の勘定科目名はXLinkのしくみで対応表からもってくるようになっています。XLinkについては残念ながら具体的には私も理解できていません。
ただ、XBRLはXMLファイルなので、XMLオブジェクトとして定義してDOMの操作をするのが、スマートです。
VBScriptでの私の習作の一部ですが、以下のコード例がXMLデータをDOM操作するコードの例です。

    set xmldoc=CreateObject("MSXML2.DOMDocument")
    xmldoc.async=False
    xmldoc.setProperty "SelectionLanguage","XPath"
    xmldoc.setProperty "SelectionNamespaces", " xmlns:jpfr-t-cte='http://info.edinet-fsa.go.jp/jp/fr/gaap/t/cte/2011-03-14' xmlns:jpfr-t-sec='http://info.edinet-fsa.go.jp/jp/fr/gaap/t/sec/2011-03-14' xmlns:link='http://www.xbrl.org/2003/linkbase' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:jpfr-oe='http://info.edinet-fsa.go.jp/jp/fr/gaap/o/oe/2011-03-14' xmlns:jpfr-di='http://info.edinet-fsa.go.jp/jp/fr/gaap/o/di/2011-03-14' xmlns:xbrli='http://www.xbrl.org/2003/instance' "
    XbrlFileMei=MyForm.XbrlFRFile1.value
  fileValue=xmldoc.load(XbrlFileMei)
  set ACMeiNode=xmldoc.getElementsByTagName("./xbrli:xbrl/*")

phpならば、

  $dom = new DOMDocument('1.0', 'UTF-8');
  $dom->preserveWhiteSpace = false;
  $dom->formatOutput = true;
  $dom->load("sample.xbrl");
  $root = $dom->getElementsByTagName("xbrli:xbrl")->item(0);
  $sampleNode = $root->getElementsByTagName("jpfr-t-cte:CurrentAssets")->item(0);
  echo $sampleNode->nodeValue;

のような形式で金額を抜き出すのでしょう。上記のコード内の"jpfr-t-cte:勘定科目名"の記述は、jpfr-t-cteというネーム空間での規則でXMLファイルを操作しているという印です。ただ、一つのxbrlファイルの中に前期や四半期などの複数の会計期間の金額が入っていることがあるので、会計期間の属性(contextRef)を絞らなければならないでしょう。
検証を省略したアドバイスで恐縮ですが、参考になれば幸いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/28 08:33

    ご回答誠に有難うございます。
    ご指摘の内容、目から鱗でした。。
    ①勘定科目等、英語でも構わないのですが、EDINETが公表している一覧表みたいなものはあるのでしょうか?
    ②また、注記等他の開示項目も独自のidを持っているのでしょうか?

    EDINET内を調べたのですが、わからなかったため、もしご存知であればご教示頂けますでしょうか。
    宜しくお願い申し上げます。

    キャンセル

  • 2016/12/28 17:41

    XBRLの構造の規格を定義するものをタクソノミといいます。
    ご質問1の勘定科目の規格も、次のURLの金融庁の「2016年版EDINETタクソノミの公表について」からダウンロードできます。来年度版も策定中のようです。
    http://www.fsa.go.jp/search/20160314.html

    質問2についてもこのEDINETタクソノミに手掛かりがあります。また次のURLのXBRL Japan発行のXBRL FACT BOOKが実際的な情報が簡潔にまとまっていてとても参考になります。
    https://www.xbrl.or.jp/uploads/fckeditor/download/factbook/2013/FACTBOOK2013.pdf

    実際のxbrlファイルは、報告形式や企業情報や各勘定残高や脚注情報が平板に並んでいるので、付記事項等はファイルの末尾部分にあるようです。

    もうひとつ補足としてXBRLデータ表示用のアプリ(パーサ)として、富士通のXWandやXBRLな社長さんが開発したTeCAXやインド製のirisなどがあり、簡易的に財務諸表形式で取り出したいときはこのようなパーサに頼る手もあります。

    キャンセル

  • 2016/12/28 19:07

    ご回答有難うございます。
    お力添えに深謝を申し上げます。多岐にわたる情報を集約、整理したいのもありますが、DOM操作も勉強したかったので、自分で頑張ってトライしてみます。
    改めて、突破口をご教示いただけた事に御礼を申し上げます。

    キャンセル

  • 2017/01/04 13:13

    あけましておめでとうございます。
    年末年始にかけて、上記のxbrlについて、いろいろ試していたのですが、ちょっと
    行き詰まりが生じておりますので、お伺いしたく存じます。EDINETから取得した~.xbrlファイルからDOM(PHP)を利用して必要な情報を取得しようと思ったのですが、1点か分からない点がございます。

    金融庁のタクソノミを見ていて対応する英文勘定科目(標準ラベル)を.xbrlのなかに探しているのですが、検索しても出てきません。例えば仰るCurrentAssetsは.xbrlファイル上存在しませんでした。私が取得してくるファイルに誤りがあるのでしょうか?と申し上げても実際にzipで落としてきた場合、.xbrlがpublicフォルダの中に一つしかないので、これ以外には考えづらいのですが。

    また、もしDOMでxbrlファイルを操作することを基礎から学べるサイトや書籍等があればご教示願えますか?
    何卒、宜しくお願い申し上げます。

    キャンセル

-1

ファイルそのものからは抽出ができませんでした。ファイルの種類の問題なのでしょうか

???
私はあなたが示したHTMLを「sample.xbrl」というファイル名で保存してテストし、正常に動作しましたよ。

実際には「sample.xbrl」の中身はもっと大きいのですか?
それならその「sample.xbrl」自体をアップするか、中身を全部(サイズが大きすぎるなら一部でもいいからもうちょっと長い範囲で)投稿してください。

また、motuoさんの指摘した通り、全ての文字コードが統一されているかをチェックしたほうがいいですね。
sample.xbrlとphpファイル自体のエンコーディングが「utf-8」になっているかどうかを確認し、さらにphpスクリプトの先頭(開始タグの次の行)に

mb_language("ja");
mb_internal_encoding("UTF-8");


を入れてみてください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/12/27 17:16

    ご返信有難うございます。
    ・全てUTF-8で統一されていることは確認ができました。
    ・ファイルはかなり長いものになります。これを貼り付けるにはあまりにも大きいので
    入手手段を開示させて頂きます。反対にお手数をおかけしてまことに申し訳ございません。

    例えばですが
    ①EDINET
    https://disclosure.edinet-fsa.go.jp/E01EW/BLMainController.jsp?uji.verb=W1E63010CXW1E6A010DSPSch&uji.bean=ee.bean.parent.EECommonSearchBean&TID=W1E63011&PID=W1E63010&SESSIONKEY=1482826248664&lgKbn=2&pkbn=0&skbn=0&dskb=&dflg=0&iflg=&preId=1&row=100&idx=0&syoruiKanriNo=&mul=%E3%83%97%E3%83%AD%E3%83%AD%E3%82%B8%E3%82%B9&fls=on&cal=1&era=H&yer=&mon=&pfs=4

    ②これのH28.08.30 15:00にアップされているxbrlファイルをクリック
    ③zipが解凍されるので以下が対象ファイルになります。
    jpsps070300-asr-001_G09054-000_2016-05-31_01_2016-08-30.xbrl

    何卒、宜しくお願い申しあげます。

    キャンセル

  • 2016/12/27 17:28

    大変申し訳ございません、正規表現として抽出するPatternをHTMLのコードではなくブラウザ上の表示で実行しておりました、、
    重ねてお詫び申し上げえます。

    キャンセル

  • 2016/12/27 18:54

    mb_language("ja");
    mb_internal_encoding("UTF-8");

    上記二行を追記してのテストはしてみましたか?

    回答者たちの提案に対しては全ての項目を試してみて、それでも上手くいかなければ「何がどうダメだったのか」を逐一書いていただかないと、次のアドバイスのしようがありません。

    キャンセル

  • 2016/12/27 21:22

    最終的にどういう結果を得たいのかイマイチ意図がよくわかりませんが、下記でいいのでは?

    <?php

    $html=file_get_contents("jpsps070300-asr-001_G09054-000_2016-05-31_01_2016-08-30.xbrl");

    preg_match_all('!font-family: &amp;apos;MS Mincho&amp;apos;; font-size: 12px"&gt;(.+?)&lt;/span&gt;!s', $html, $matches);
    echo "<pre>";
    print_r($matches);
    echo"</pre>";

    キャンセル

-1

SugiuraYさん、あけましておめでとうございます。
正月休み返上でDOMを研究なさったご様子で、頭が下がります。
私もRubyOnRailsの初歩をマスターするつもりでいながら、録り貯めたビデオの鑑賞で時を費やしてしまいました。
さて、XBRLのDOM操作ですが、まず勘定科目名のノードが< ></ >に挟まれているのではなく、

<jpfr-t-cte:CurrentAssets contextRef="CurrentQuarterConsolidatedInstant" unitRef="JPY" decimals="-6">123456000000</jpfr-t-cte:CurrentAssets>


のように名前空間の接頭語jpfr-t-cte:をつけて並んでいます。各勘定のノードが挟んでいるのは残高金額でタグ中の四半期の当期分の金額で有り、通貨"JPY"で、表示単位は百万円単位にくくることを示しています。
タグの深さはルート直下の<xbrli:xbrl>の子ノードに全ての情報がフラットに並べられています。
最初の方に並んでいる<link:schemaRef>や<link:roleRef>が外部のタクソノミ情報を宣言し、末尾の方でXLinkを作用させています。
参考になるかどうかいささか自信がありませんが、4年前にHTML&VBScriptでXBRLファイルを簡易解析するコードを作ったので以下にアップします。これが"MSXML2.DOMDocument"クラスが古いのか、IE11が相性が悪いのか、私のWindows8.1機では今動かすことができません。とりあえず、DOM操作の流れを概観してみて下さい。

<html>
<head>
<title>XBRL-FR_ac_get_dom1</title>
<script type="text/vbscript">
<!--
Option Explicit
Sub onLord()
End Sub

Sub Syori()
    dim xmldoc,fileValue,NodesEntryDetail,productPrice
    dim ACMeiList,ACMeiNode,ACBan,i,karikei,kasikei
    dim AEntryDetail,NumDetail,DCflg
    dim ACCount,ACAmountList,ShortAC,XbrlFileMei
    set xmldoc=CreateObject("MSXML2.DOMDocument")
    xmldoc.async=False
    xmldoc.setProperty "SelectionLanguage","XPath"
    xmldoc.setProperty "SelectionNamespaces", " xmlns:jpfr-t-cte='http://info.edinet-fsa.go.jp/jp/fr/gaap/t/cte/2011-03-14' xmlns:jpfr-t-sec='http://info.edinet-fsa.go.jp/jp/fr/gaap/t/sec/2011-03-14' xmlns:link='http://www.xbrl.org/2003/linkbase' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:jpfr-oe='http://info.edinet-fsa.go.jp/jp/fr/gaap/o/oe/2011-03-14' xmlns:jpfr-di='http://info.edinet-fsa.go.jp/jp/fr/gaap/o/di/2011-03-14' xmlns:xbrli='http://www.xbrl.org/2003/instance' "
    XbrlFileMei=MyForm.XbrlFRFile1.value
    fileValue=xmldoc.load(XbrlFileMei)
    If fileValue=False Then
      MsgBox "XBRL-FR ファイル 読み込みエラー"
    End If

    ACMeiList=""
    set ACMeiNode=xmldoc.getElementsByTagName("./xbrli:xbrl/*")
'    set ACMeiNode=xmldoc.getElementsByTagName("./xbrli:xbrl/[contains(.,'jpfr-t-cte:')]")
'    set ACMeiNode=xmldoc.selectNodes("./xbrli:xbrl/")


    ACCount=0
    If ACMeiNode.length>0 Then
      For i=0 to ACMeiNode.length-1
        If InStr(ACMeiNode(i).nodeName, "jpfr-t-cte:") Then
          ShortAC = Replace(ACMeiNode(i).nodeName, "jpfr-t-cte:" ,"")
          ACMeiList=ACMeiList & ShortAC & vbCrLf
          ACCount=ACCount+1
        End If
      Next
    End If
    myForm.showArea1.value=ACMeiList
    msgbox "勘定科目出現回数:" & ACCount

    ACAmountList="<table border='1'><tr align='center'><th bgcolor='#FFFFCC'>勘定科目</th><th bgcolor='#CCFF66'>金額</th>Amount<tr>" & vbCrLf
    If ACMeiNode.length>0 Then
      For i=0 to ACMeiNode.length-1
        If InStr(ACMeiNode(i).nodeName, "jpfr-t-cte:") AND InStr(ACMeiList, ACMeiNode(i).Text)=0 Then
          ShortAC = Replace(ACMeiNode(i).nodeName, "jpfr-t-cte:" ,"")
          ACAmountList = ACAmountList & "<tr><td bgcolor='#FFCCFF'>" & ShortAC & "</td><td bgcolor='#CCFF66' align='right'>" & FormatNumber(ACMeiNode(i).Text,,,,-1) & "</td></tr>" & vbCrLf
        End If
      Next
    End If
    ACAmountList= ACAmountList & "</table>"
    document.getElementByID("showArea2").innerHTML = ACAmountList
End Sub

Sub XbrlFRFile1_onChange()
    Syori()
End Sub
-->
</script>
</head>
<body bgcolor="#66CCFF">
<br>
<h1 align="center">EDI-NetのXBRL-FRファイルの勘定科目データ簡易抽出ページ</h1>

 <form name="myForm">
 <p>
 勘定科目(Account)を抽出したいXBRL-FRファイルのパス <br />
    <input id="XbrlFRFile1" type="file" size="160" /></p>
 <p>
勘定科目リスト<br>
    <textarea name="showArea1" cols="60" rows="15" Readonly="true"></textarea><br>
<br>
 </form>
XBRL FR 勘定残高リスト (複数あるのは前期分と当期分を示している)<br>
    <div id="showArea2"></div>
</body>
</html>


これは確かに4年前のウインドウズ7機では動きました。
また、英語勘定科目名と日本語勘定科目名を並べたAccountListcsvファイルを線形探索して和訳して一覧表示するXBRL-FR_ac_get_dom4.htmも開発しました。

科目名[en:label],Account classes,科目名[ja:label],name,balance,periodType
Non-current assets,,非流動資産,NoncurrentAssetsAbstract,,duration
Cash and cash equivalents,Assets,現金及び現金同等物,CashAndCashEquivalents,debit,instant
Current assets,Assets,流動資産,CurrentAssets,debit,instant
Assets,Assets,資産,Assets,debit,instant
Liabilities,,負債,LiabilitiesAbstract,,duration
Equity,Equities,資本,Equity,credit,instant
    :
    :


また、XBRLの技術について詳しい書籍として
XML技術とXBRLデータ標準を用いたインターネット財務情報システム」湯浦克彦著 ソフトリサーチセンター刊
をお勧めします。もう古本でしか手に入らないのではないかと思い、アマゾンで検索してみるとまだ発行されていて少し驚きました。タクソノミやスキーマやXML操作技法が出ていてかなり参考になります。
今、ご提供できる手掛かりはこの程度です。では、本年がよい年になりますように。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/04 17:35

    seastar様
    年始、早々にご多忙な時期にご回答を頂き、誠に有難うございます。
    サンプルのコード並びに書籍情報を含めてご教示を頂き、ありがとうございます。
    .xbrlのなかで随所にご指摘のノードを見つけることができました。早速諸々のDOM操作を試してみたいと思います。
    改めまして深く御礼を申し上げます。

    キャンセル

-1

もうひとつ補足として、私のXML習作集「XML研究の目次」私の研究レポート「簿記の記帳と財務諸表作成へのXML技術の応用」を挙げておきます。
私は仕訳をXMLで表現できないか研究を始め、あとでXBRLのことを知ったので、記帳用のXBRL-GLの操作を中心に勉強してきました。一方、XBRL-FRの構造の単純さにちょっといなされた感じがしました。
SugiuraYさんも、自分なりの単純化したXBRLファイルを用意して、ダンプしたり、集計したりしてみるとXMLを操作する感覚が分かってくると思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

昔のフォルダを探したら、以下のような平成25年のカンファレンスへの研究報告のために作成したスライドがあったので、参考までにアップします。
スライド1 XBRL-FR構造図 (財務諸表報告用)
イメージ説明

スライド2 XBRL-GL構造図 (日次処理の仕訳用)
イメージ説明

データの構造を押さえれば、DOMでもXPATHでも目的のノードを操作できます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/05 08:33

    おはようございます。
    一晩、こねこねしていてわかったのですが、対象につきまして、xbrlgetElementsbytagnameにおいて、接頭辞を除外すれば抽出する事ができました。しかしながら、名前空間を無視する方法は適切ではないと考えられるため、名前空間を使用する場合の抽出方法を調べてみます。

    キャンセル

  • 2017/01/05 08:44

    SugiuraYさん、おはようございます。
    XBRL漬けで徹夜したんですか。(~_+;;)
    私も20年ほど前にモデム接続でネットスケープブラウザにWebページを初めて表示できたときは、夜が更けるのも忘れて熱中したものでした。
    Sugiuraさんを見習って、私もRubyOnRailsフレームワークをマスターしていきます。
    お互い頑張りましょう。

    キャンセル

  • 2017/01/05 17:20

    すみません、最後に一つだけお伺いさせてください。
    かなり当初に仰っていた、会計期間の属性(contextRef)を絞る方法ですが、
    getElementsbytagnameに加えて属性を指定する方法がどうしてもPHPで見つけることができません。(そもそもマニュアルも記事もあまり、PHPでDOMを操作するものが出てこないのですが)
    こちらの方法等が載っているサイトやアドバイスを頂けますでしょうか。
    度々、申し訳ございませんが、何卒、宜しくお願い申し上げます。

    キャンセル

-1

PHP マニュアルサイト内の"DOMElement::getAttribute"の項目で

  $valueID = $searchNode->getAttribute('ID');


のコードが出ております。
関連メソッドとして

  public DOMAttr getAttributeNode ( string $name )
  public DOMAttr getAttributeNodeNS ( string $namespaceURI , string $localName )
  public string getAttributeNS ( string $namespaceURI , string $localName )


も挙げられています。

私は以下の本を持っていますが、これは古本しかないようです。なお、DOMはjavaのサンプルが載っています。

XML逆引きクイックリファレンス―XML1.0(3rd Edition)対応 2006/7/1発行 
                坂田健二 著 毎日コミュニケーションズ刊 

検証までおつきあいしませんで、ちょっと気が引けますが、そんなブレークスルーもプログラミングの醍醐味ですから、どうぞXMLおよびXBRLを極められますように。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/05 19:08

    ご回答有難うございます。
    とんでもございません、最後までお付き合いを頂き、まことに有難うございます。
    重ねて深謝を申し上げます。
    早速、また没頭の時間に入ります。
    何卒、宜しくお願い申し上げます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る