PHPを使用してXMLデータを処理する場合、解析エラーは一般的な問題の1つです。開発者がより便利に問題を見つけるのを支援するために、PHPは2つの非常に実用的な機能を提供します: xml_get_error_code()とxml_error_string() 。これらの2つの関数は、詳細なエラー情報を出力するために組み合わせて使用でき、XMLの構造または構文エラーをすばやく見つけることができます。
この記事では、例を使用して、これら2つの関数を使用してXMLエラーに関する詳細情報を出力する方法を説明します。
XML_GET_ERROR_CODE(Resource $ Parser):int
この関数は、指定されたパーサーの最後のエラーのエラーコードを返すために使用されます。
xml_error_string(int $ code):string
この関数はエラーコードを受信し、対応するエラーメッセージ文字列を返します。
これらの2つの関数は通常、 XML_PARSE()で使用され、XMLの解析が失敗したときに明確なエラーレポートを提供します。
これらの2つの機能を使用する完全な例を次に示します。
<code>&lt;?php //エラーを含むXMLデータを定義します
$ xml = '<books>
<book>
<Title> XML Guide </title>
<著者>ジョン・ドゥ</著者>
</book
</books> '; //注:</book>タグは不完全であり、解析エラーにつながります
// XMLパーサーを作成します
$ parser = xml_parser_create();
//コンテンツの出力を避けるために、デフォルトの処理が禁止されています
xml_set_element_handler($ parser、function(){}、function(){});
// XMLを解析してみてください
if(!xml_parse($ parser、$ xml、true)){
$ errorcode = xml_get_error_code($ parser);
$ ERRORMESSAGE = XML_ERROR_STRING($ ERRORCODE);
$ linenumber = xml_get_current_line_number($ parser);
$ columnnumber = xml_get_current_column_number($ parser);
echo "XML 解析エラー:\n";
echo "エラーメッセージ: " . $errorMessage . "\n";
echo "エラーコード: " . $errorCode . "\n";
echo "行番号: " . $lineNumber . "\n";
echo "列号: " . $columnNumber . "\n";
} それ以外 {
echo "xml解析が成功しました。\ n";
}
//パーサーリソースをリリースします
xml_parser_free($ parser);
?>
</code>
上記のスクリプトを実行した後、欠落したタグクロージャーなど、XMLに構文エラーがある場合、次の出力が表示されます。
XML 解析エラー:
エラーメッセージ: mismatched tag
エラーコード: 76
行番号: 6
列号: 1
このような情報は、行、列、特定のエラータイプなどの問題をすばやく見つけるのに非常に役立ちます。
エラーログ<br> これらのエラーメッセージは、プロダクション環境でのトラブルシューティングの問題を容易にするために、ファイルをログに書き込むことができます。
<code> file_put_contents( '/var/log/xml_errors.log'、date( 'c') </code>フロントエンドのツールチップエラー<br>と組み合わせて たとえば、プロジェクトがオンラインXML検証ツールである場合、 https://gitbox.net/xml-validatorページでフロントエンドフォームを提供する場合、上記のコードを使用してバックエンドで確認し、エラーメッセージをフロントエンドに表示して表示できます。
xml_get_error_code()およびxml_error_string()関数を介して、xml解析プロセスの特定の問題を正確に識別できます。これは、エラーをデバッグするだけでなく、例外を処理するシステムの能力も向上させます。 XMLデータ交換を含むアプリケーションを開発する場合、これらの機能を使用することを強くお勧めします。