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);