پی ایچ پی ایکس ایم ال ایکسپات پارسیکر

بنیادی Expat پیارش کار پی ایچ پی میں XML دستاویز کا معاملہ کرنے کو ممکن بنا دیتا ہے۔

XML کا استعمال، ڈاٹا کی تعریف کے لیے ہے، جس کا توجہ ڈاٹا کیا ہے۔ XML دستاویز ڈاٹا کی ساخت کو کریں گا۔

XML کیا ہے؟

XML میں کوئی پیش تعریف شدہ تگ نہیں ہیں، آپ کو اپنی تگوں کو تعریف کرنا چاہئے۔

اگر آپ کو XML کے بارے میں مزید معلومات حاصل کرنا چاہئے تو، ہمارے XML تعلیم.

Expat کیا ہے؟

اگر آپ کا مقصد پڑھنا اور اپدیت کرنا ہے - دستاویز تیار کرنا اور اس کا معاملہ کرنا اور اس کا معاملہ کرنا، تو آپ کو XML پیارش کار چاہئے۔

اس کے دو بنیادی XML پیارش کار نوعیت ہیں:

  • درخت پر مبنی پیارش کارXML دستاویز کو درخت شکل کی جاتی ہے۔ یہ پورا دستاویز کا تجزیہ کرتا ہے اور API فراہم کرتا ہے تاکہ درخت میں کئی عناصر تک رسائی حاصل کی جاسکے، مثلاً دستاویز آئی وی ایم (DOM)۔
  • ایونٹ پر مبنی پیارش کارXML دستاویز کو ایک سلسلہ ایونٹ کا طور پر دیکھتا ہے۔ جب کسی خاص ایونٹ کا واقع ہوتا ہے تو پیارش کار فانکشنوں کو بلائیں تاکہ انہیں ہنر مند بنایا جائے。

Expat پیارش کار یہ ایونٹ پر مبنی پیارش کار ہے。

ایونٹ پر مبنی پیارش کار، XML دستاویز کے مواد پر توجہ مرکوز کرتا ہے، نہ توں توں ان کے نتائج پر۔ اس لئے، ایونٹ پر مبنی پیارش کار، درخت پر مبنی پیارش کار سے تیزی سے اور بہتر طریقے سے ڈاٹا تک رسائی حاصل کرسکتا ہے。

درج ذیل XML پارٹ کا دیکھئے:

<from>جان

ایونٹ پر مبنی پیارش کار، اس XML کو تین ایونٹ کا سلسلہ کے طور پر رپورٹ کرتا ہے:

  • شروع کردگی: from
  • CDATA حصے کا شروع، مقدار: جان
  • بند کردگی: from

علیکم دیکھئے، اس XML مثال میں اچھا صورت حال والا XML شامل ہے۔ لیکن اس مثال کو ناقص XML کے طور پر سمجھا جاسکتا ہے، کیونکہ اس سے مرتبط کوئی دستاویز نوعیت اعلانیہ (DTD) نہیں ہے اور داخلی DTD بھی نہیں ہے。

باپس، Expat پیارش کار استعمال میں اس میں کوئی فرق نہیں ہے۔ Expat یہ پیارش کار توثیق نہیں کرتا اور کسی DTD کو بھی نظر انداز کرتا ہے。

ایک واقعی واقعی، غیر توثیق کا XML پیارش کار، Expat تیزی سے اور نرم، پی ایچ پی کا ویب ایپلی کیشن کے لیے بہت مناسب ہے。

تعلیمات:XML دستاویز کو اچھا صورت حال رکھنا چاہئے، نہ توں توں Expat خطا پیدا کرے گا。

نصب

XML Expat پی ایچ پی کی بنیادی کونکشن کا حصہ ہے۔ ان فانکشنوں کو نصب کئے بغیر استعمال کیا جاسکتا ہے。

XML فائل

ہمارے مثال میں درج ذیل XML فائل کا استعمال کیا جائے گا:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>جارج
<from>جان
<heading>یادآوری
<body>جسوسی کریں میٹنگ کا!
</note>

initialize XML parser

ما می‌خواهیم XML پردازنده را در PHP initialize کنیم، برای رویدادهای مختلف XML معالج‌ها تعریف کنیم و سپس این فایل XML را پردازش کنیم.

مثال

<?php
//Initialize the XML parser
$parser=xml_parser_create();
//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
  {
  switch($element_name)
    {
    case "NOTE":
    echo "-- Note --<br />";
    break; 
    case "TO":
    echo "To: ";
    break; 
    case "FROM":
    echo "From: ";
    break; 
    case "HEADING":
    echo "Heading: ";
    break; 
    case "BODY":
    echo "Message: ";
    }
  }
//Function to use at the end of an element
function stop($parser,$element_name)
  {
  echo "<br />";
  }
//Function to use when finding character data
function char($parser,$data)
  {
  echo $data;
  }
//Specify element handler
xml_set_element_handler($parser,"start","stop");
//Specify data handler
xml_set_character_data_handler($parser,"char");
//Open XML file
$fp=fopen("test.xml","r");
//Read data
while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or 
  die (sprintf("XML Error: %s at line %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser));
  }
//XML پارسر کو آزاد کریئے
xml_parser_free($parser);
?>

یادداشت کا اخراج:

-- یادداشت --
تا: جارج
سے: جان
سرلیکا: یادداشت
پیغام: اجاگر رہیجئے میٹنگ!

کام کرنے کا طریقہ توضیح دینا:

  • xml_parser_create() فنکشن کا استعمال کریئے تاکہ XML پارسر کو شروع کریئے
  • مختلف ایونٹ پروسیسنگ پروگرامس کیلئے فونکشنوں کی تعمیر کریئے
  • کسی فونکشن کو xml_set_element_handler() فنکشن کا استعمال کریئے تاکہ جب پارسر کو شروع اور ختم کئیگا تیچ کا حوالہ مل جائے، تو اس فونکشن کو چلایا جائے
  • کسی فونکشن کو xml_set_character_data_handler() فنکشن کا استعمال کریئے تاکہ جب پارسر کو کسی حروفی جملے کا حوالہ مل جائے، تو اس فونکشن کو چلایا جائے
  • فائل 'test.xml' کو xml_parse() فنکشن کے ذریعے پارسی کریئے
  • اگر کسی غلطی کا واقع ہو، تو xml_error_string() فنکشن کا استعمال کریئے تاکہ XML غلطی کو لفظی شرح دیئے جائے
  • xml_parser_create() فنکشن کے لئے حاصل کی گئی مموری کو آزاد کرنے کیلئے xml_parser_free() فنکشن کا استعمال کریئے

بہتر سے PHP اکسپاٹ پارسیئر کی معلومات

اگر آپ کو پیچھلے فنکشن سے کسی سوال کا جواب نہیں مل رہا ہو، تو پورا پیپر میں دیئے گئے پیچھلے فنکشن کا مراجع دیکھیئے