## 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_use_internal_errors()
- libxml_get_errors()
- LibXMLError

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open