PySmallXMLParser

Posted: مارس 1, 2009 in General
الوسوم:, , ,

وانا بتصفح بعض السورسات فى Mono لقيت SmallXMLParser –وهو مبنى على الأحداث مشابه ل SAX- .. على كل حال قررت اكتب واحد لبايثون (على سبيل التطبيق 😉 )

تقدر تطلع عليه من هنا وكيفية الإستخدام فى ملف test.py

الفكرة انك تشتق الصف XMLReader كما فى BooksXMLReader وتعيد تعريف ال callbacks اللى تهمك مثل onStartTag (بيتم استدعاءها عند بداية كل tag) و onCharacters بيتم استدعاءها عند المحتوى و onEndTag عند انهاء tag معين و onComment بيتم استدعاءها عند البدأ فى قراءة comment و onPI عند كل Processing Instruction

فى الدالة testReadingBooks بتنشئ كائن BooksXMLReader وتمرر file object فى ال __init__ لو مش فى ملف فى string تقدر تستدعى الدالة create_stream علي ال string

تستدعى الطريقة start ليتم بدأ المعالجة

تقدر تستفيد من ال Reader بإنك تعمل حاجات كتير زى INI parser او غيرهم!

مش اجهدت الparser مع ملفات اكبر من 2 ميجا (صح ياستورم؟ :D)

ال APIs مازلت محتاجة refractoring

اى ملاحظات او تعليقات حوله لاتتردد فى مراسلتى.

بمناسبة ال parsing تابع الموضوع Heist مفسر Scheme مكتوب بروبى

كنت مخلص ريبورتات وكانت ناقصة على التسليم فقعدت حوالى ساعة بحاول اعرف  البرنتر وفى الآخر طلعت مش متوصلة بالجهاز اساسا وربنا ستر 😀

وبس كدا اشوفكم قريبا 🙂

التعليقات
  1. St0rM كتب:

    اه صح 😀 , بس انا مش واثق فيك بأمانه 😛

    —snip—
    ]كنت مخلص ريبورتات وكانت ناقصة على التسليم فقعدت حوالى ساعة بحاول اعرف البرنتر وفى الآخر طلعت مش متوصلة بالجهاز اساسا وربنا ستر 😀
    —snip—
    ههههههههههههههههههههههههههههههههههههههههههههههههه
    احسن 😛

  2. عبدالرحمن كتب:

    تمام يا باشا يس مش عارف هجرب ازاى
    فارقت الجهاز و الجهاز فارقنى :S
    يلا يمكن ربنا يمن يرزقنى بحتة لابتوب و لا حاجة 🙂

  3. Akram كتب:

    كنت بتعمل ايه فى سورسات مونو :p ?
    الفكرة حلوة بس فى حاجة انت هنا ماتبعتش نفس الأسلوب مثلا فى
    startElement(tag, attributes)
    ولكن بتستخدمها
    onStarttag(tag)
    وكده بنوصل ل attributes كأنها property

    التطبيق جميل جدا شكرا

  4. Ahmed Youssef كتب:

    @St0rM
    ال مش واثق ال

    @Abom:
    ربنا يرزقك بلابتوبين تلاته ويسهل عليك الكونكشن:D

    @Akram:
    فعلا انا شايف ان ال attrs تنتمى للأوبجكت مش تتمرر لل callback

    ملحوظة فى ال onEndTag مش بيتمرر tag object لكن string

اترك تعليقًا

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار ووردبريس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s