Top / PHP / Liblary / SPL / SimpleXML / SimpleXMLIterator


 #setlinebreak(on)
 * SimpleXMLIterator SimpleXMLのIteratorパターンクラス [#dfa4f220]
 
 #htmlinsert(googleAdsense.html)
 
 こちらに移動
 http://dozo.matrix.jp/spl/simplexml
 
 コンフィグファイル、各種Web Service(WEBサービス)、
 通信プロトコルに至ってXMLが当たり前のように飛び交っている。
 しかしPHPerな人は取り残され気味だ。
 他のライトウェイト言語(Light Weight Language, Ruby, Pythonなど)に比べて、
 PHPのXML対応は遅れを取っている。
 
 PHPでXMLを取り扱おうとすると
 ''(゜Д゜)メンドイ''
 になってしまうわけだが。
 [[SimpleXML>PHP/Liblary/SPL/SimpleXML]]を使うと非常に簡単にXMLを取り扱うことが出来る。
 
 
 さらにXMLを展開後のオブジェクト群を取り扱いやすくするのが、
 SimpleXMLIterator(SimpleXML イテレータ)だ。
 
 **サンプル [#u882a278]
 まずはサンプルから
  <?php 
  $xml =<<<EOF
  <?xml version='1.0'?> 
  <OperationRequest>
  <HTTPHeaders>
   <Header Name="UserAgent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"/>
  </HTTPHeaders>
  <RequestId>1YZ06151X1EVCNK1QTYC</RequestId>
  <Arguments>
   <Argument Name="AssociateTag" Value="hoge-22"/>
   <Argument Name="ItemPage" Value="6"/>
   <Argument Name="Keywords" Value="test"/>
   <Argument Name="ResponseGroup" Value="Medium"/>
   <Argument Name="Operation" Value="ItemSearch"/>
   <Argument Name="Service" Value="AWSECommerceService"/>
   <Argument Name="AWSAccessKeyId" Value="hogehoge"/>
   <Argument Name="SearchIndex" Value="Blended"/>
  </Arguments>
  <RequestProcessingTime>0.109647989273071</RequestProcessingTime>
  </OperationRequest>
  EOF;
  
  $sxe = simplexml_load_string($xml, 'SimpleXMLIterator'); 
  
  for ($sxe->rewind(); $sxe->valid(); $sxe->next()) {
     echo "key: ".$sxe->key()."<br />\n";
     echo "value: ".print_r( $sxe->current(), true )."<br />\n";
  }
  ?>
 
 **各種メソッド [#xcd3b799]
  SimpleXMLIterator::current -- (mixed)現在のオブジェクトを返す
  SimpleXMLIterator::getChildren -- (mixed)現在の子オブジェクトを返す
  SimpleXMLIterator::hasChildren -- (bool)現在のオブジェクトが子オブジェクトを所有しているかどうかを返す
  SimpleXMLIterator::key -- (string)現在のオブジェクトのキー名を返す
  SimpleXMLIterator::next -- (void)次のオブジェクトに移動する
  SimpleXMLIterator::rewind -- (void)SimpleXMLを初期化する
  SimpleXMLIterator::valid -- (bool)現在のオブジェクトがSimpleXMLIteratorとして有効かどうかを返す
 
 *ここでいう”現在”とは”現在ポインタが指定しているオブジェクト”のこと
 
 これらは特別な引数を必要としない。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較