XML CDATAもパース(LIBXML_NOCDATA)
「simplexml_load_file()」「simplexml_load_string()」を使ってXMLの中にいるCDATAの値を取得する
作成日:2019-07-03, 更新日:2019-07-03
基本
「simplexml_load_file()」「simplexml_load_string()」の第2引数、第3引数を指定。
▼CDATAの中をも取得
simplexml_load_file(XMLのPATH, 'SimpleXMLElement', LIBXML_NOCDATA);
▼CDATAの中をエスケープしたくないとき
simplexml_load_file(XMLのPATH, null, LIBXML_NOCDATA);
「simplexml_load_string()」も同様。
めも
$url = 〇〇〇〇; $source = file_get_contents($url); $domDocument = new DOMDocument(); libxml_use_internal_errors(true); //$domDocument->loadHTML($source); // HTMLの読込み $domDocument->loadXML($source); // XMLの読込み libxml_clear_errors(); $xmlString = $domDocument->saveXML(); // XMLをパース $xmlObject = simplexml_load_string($xmlString, 'SimpleXMLElement', LIBXML_NOCDATA); if($xmlObject === FALSE) { echo 'err'; exit; } // 連想配列化 $aryDom = json_decode(json_encode($xmlObject), true);