« 基本的な SimpleXML の使用法
SimpleXMLElement »

XML エラーの対応

ドキュメント読み込み時の XML エラーに対処するのは非常にシンプルな作業です。 libxml の機能を使うと、 ドキュメント読み込み時のすべての XML エラーを抑制して後からそれを処理することができます。

libxml_get_errors() が返す LibXMLError オブジェクトには、エラーについての message や line、 column (場所) といったプロパティが含まれます。

例1 壊れた XML 文字列の読み込み

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if ($sxe === false) {
    echo "Failed loading XML\n";
    foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
    }
}
?>

上の例の出力は以下となります。

Failed loading XML
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and broken
    Premature end of data in tag broken line 1

関連キーワード:
libxml   errors   broken   line   ドキュメント   LibXMLError   message   internal   Failed   loading   基本的   SimpleXML   SimpleXMLElement   対処   作業   抑制   column   場所   プロパティ   読み込み   simplexml   load   foreach   Blank   needed
関連する関数・ページ:
function.libxml-use-internal-errors   function.libxml-get-last-error   function.libxml-clear-errors   book.libxml   ref.libxml   class.libxmlerror