ساخت parser (xml_parser_create)
تابع xml_parser_create برای ساخت parser جدید است. «پارسر (Parser)» متن XML را می خواند و تکه تکه می کند. مثل ناظم که دفترها را جدا می چیند تا گم نشوند.
تعریف و کاربرد
طبق منبع، این تابع یک پارسر XML می سازد. سپس می توانید handlerها را تنظیم کنید و داده را پارس کنید. در پایان، پارسر را آزاد کنید.
سینتکس (Syntax)
xml_parser_create(<encoding>)
encoding: کدگذاری خروجی. پیش فرض UTF-8 است. مقادیر مجاز: ISO-8859-1، UTF-8، US-ASCII.
مثال کاربردی: ساخت، پارس، آزادسازی
<?php
// ساخت یک XML parser
$parser = xml_parser_create();
// هندلر داده متنی را تنظیم کن
function char_handler($parser, $data) {
echo $data;
}
xml_set_character_data_handler($parser, "char_handler");
// فایل XML را باز کن
$fp = fopen("note.xml", "r");
// خواندن و پارس کردن به صورت قطعه ای
while ($data = fread($fp, 4096)) {
$isEnd = feof($fp);
if (!xml_parse($parser, $data, $isEnd)) {
die(sprintf(
"XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)
));
}
}
// آزادسازی منابع و بستن فایل
xml_parser_free($parser);
fclose($fp);
?>
گام های عملی
- یک پارسر با
xml_parser_createبساز. - هندلرها را با توابع XML تنظیم کن.
- فایل را باز کن و تکه ای بخوان.
- با
xml_parseداده را پردازش کن. - در پایان، پارسر را آزاد کن.
نکته: اگر به namespace نیاز داری، از xml_parser_create_ns استفاده کن.
هشدار: فراموشی xml_parser_free() باعث هدررفت حافظه می شود.
پیوندهای مفید
آزادسازی پارسر: xml_parser_free. راهنمای ساخت parser با namespace: xml_parser_create_ns.
W3Schools: xml_parser_create — تعریف، پارامترها، و مثال رسمی.
W3Schools: XML Reference — فهرست کامل توابع XML.
جمع بندی سریع
- xml_parser_create برای ساخت پارسر است.
- encoding پیش فرض UTF-8 می باشد.
- پارس را قطعه ای انجام بده.
- خطاها را با کد و خط گزارش کن.
- همیشه پارسر را آزاد کن.