トップ 一覧 置換 検索 ヘルプ RSS ログイン

PHPでXMLを扱うの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!simplexml_load_file, simplexml_load(とりあえず簡単に読み込む)
http://fdays.blogspot.jp/2009/02/simplexml.html

!!サンプルXML
 <?xml version="1.0" encoding="UTF-8" ?>
 <root>
  <parent>
   <child>aaa</child>
   <child>bbb</child>
   <child>ccc</child>
   <count>3</count>
  </parent>
  <hy-phen>hyphen</hy-phen>
 </root>

!!読み込み
 <?php
  $xmlstr = file_get_contents("test2.xml");
  echo $xmlstr;
  $xml = new SimpleXMLElement($xmlstr);
  var_dump($xml);
  
  $xml = simplexml_load_file("test2.xml");
  var_dump($xml);
 ?>

!!子要素の取り出し
 var_dump($xml->parent->count);

!!繰り返し要素を指定すると、先頭を取り出す
 var_dump($xml->parent->child);

!!インデックスを指定して繰り返し要素を取り出す
 var_dump($xml->parent->child[2]);

!!繰り返し要素にはforeachを使うことができる
 foreach ($xml->parent->child as $c) {
  var_dump($c);
 }

!!子要素全てを取り出す
 foreach ($xml->parent->children() as $c) {
 var_dump($c);
 }

!!XMLの要素名がPHPの予約後、変数の場合は{ } で囲む
 var_dump($xml->{'hy-phen'});


!!!DOM
!読み込み
 <?php
  $dom = new DOMDocument('1.0', 'UTF-8');
  $dom->load("test.xml");
  
  printNode($dom);
  
  function printNode(DOMNode $node) {
    $child = $node->firstChild;
    while ($child != NULL) {
      // nodeValueの仕様がW3C の仕様とは異なる。
      if ($child->nodeType == XML_TEXT_NODE) {
        print($child->nodeName . " Text = " . $child->nodeValue. "\n");
      } else {
        print($child->nodeName."\n");
      }
      
      // print($child->nodeName)."\n";
      printNode($child);
      $child = $child->nextSibling; 
    }
  }
 ?>


{{category2 プログラミング言語,Java}}