API を介してデータを取得していますが、次の形式で XML を返しています。
<SUBSCRIBER_ROW>
<SUBSCRIBER>
<ACCOUNT_NUMBER Value="0123456789123"/>
<FIRST_NAME Value="fakeFirstName "/>
<INITIAL Value="w "/>
<SURNAME Value="fakeLastName "/>
<TELEPHONE_NUMBER Value="5551234"/>
<TELEPHONE_AREA Value="403"/>
データを引き出すために必要なコードは次のとおりです。
protected function par_getSubscriber($webCBSXML, $isJSON = false){
////parse XML
$msg = 'WebCBS ERR: ';
$dom = new DOMDocument();
if(@$dom->loadXML($webCBSXML)) {
$errors = $dom->getElementsByTagName('Error');
if($parsedData = self::checkError($dom)) {
$parsedData = self::formatOutput($parsedData, $isJSON, true);
return $parsedData;
} else {
$subscriber['account_number'] = $dom->getElementsByTagName('account_number')->getAttribute('Value');
$subscriber['first_name'] = $dom->getElementsByTagName('first_name')->getAttribute('Value');
$subscriber['surname'] = $dom->getElementsByTagName('surname')->getAttribute('Value');
$subscriber['telephone_number'] = $dom->getElementsByTagName('telephone_number')->getAttribute('Value');
ただし、スクリプト全体は次の行の直後に終了します。
$subscriber['account_number'] = $dom->getElementsByTagName('account_number')->getAttribute('Value');
私は DOM ドキュメントを扱った経験があまりなく、XML からオブジェクトを作成しているため、var_dump/print_r を使用してその構造を確認することができません!