トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF 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; 
   }
 }
?>


[カテゴリ: プログラミング言語 > Java]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2015年12月12日 23時07分47秒