1 を指定しないと__getLastResponseが使えない $client = new SoapClient("http://api.porta.ndl.go.jp/servicedp/services/SRWDp?wsdl", array('trace' => 1)); //リクエストの準備 //クエリはCQL //ここでは 'recordPacking' => 'xml', 'recordSchema' => 'dc' $q = '(isbn = 4000074628) AND (dpid ANY "zomoku")'; $req = array('version' => '1.1', 'query' => $q, 'startRecord' => '1', 'maximumRecords' => '200', 'recordPacking' => 'xml', 'recordSchema' => 'dc'); $starttime = getmicrotime(); //リクエスト $client->searchRetrieveOperation($req); //データ取得時間出力 print('データ取得時間 = '.(getmicrotime() - $starttime).'秒'); //XML文字列取得 $xmlstr = $client->__getLastResponse(); //「ネームスペース:要素名」を「ネームスペース_要素名」に置換 $xmlstr = mb_ereg_replace('(])','\1_\2',$xmlstr); //「xsi:type」属性を「xsi_type」に置換 $xmlstr = mb_ereg_replace(' xsi:type=',' xsi_type=',$xmlstr); //XML文字列を出力 print_r('
'.htmlspecialchars($xmlstr).'
'); //XML文字列をオブジェクトツリーへ変換 $r = simplexml_load_string($xmlstr); //XMLオブジェクトを出力 print_r('
');
print_r($r);
print_r('
'); ?>