سؤال

أرغب في تحليل ملف XML صغير بسيط باستخدام Python ولكن يبدو أن العمل على PYXML قد توقف. أرغب في استخدام Python 2.6 إن أمكن. هل يمكن لأي شخص أن يوصي بمحلل XML الذي سيعمل مع 2.6؟

شكرًا

هل كانت مفيدة؟

المحلول

إذا كانت صغيرة وبسيطة ثم فقط استخدم المكتبة القياسية:

from xml.dom.minidom import parse
doc = parse("filename.xml")

سيؤدي هذا إلى إرجاع شجرة DOM لتنفيذ المعيار واجهة برمجة تطبيقات نموذج كائن الوثيقة

إذا كنت بحاجة لاحقًا إلى القيام بأشياء معقدة مثل التحقق من صحة المخطط أو استعلام XPath ، فإنني أوصي بالطرف الثالث وحدة LXML, ، وهو غلاف حول مكتبة libxml2 C الشهيرة.

نصائح أخرى

بالنسبة لمعظم مهامي ، استخدمت تطبيق DOM الخفيف الوزن ، من الصفحة الرسمية:

from xml.dom.minidom import parse, parseString

dom1 = parse('c:\\temp\\mydata.xml') # parse an XML file by name

datasource = open('c:\\temp\\mydata.xml')
dom2 = parse(datasource)   # parse an open file

dom3 = parseString('<myxml>Some data<empty/> some more data</myxml>')

هنا هو أيضًا مثال جيد جدًا على كيفية استخدام Minidom جنبًا إلى جنب مع التفسيرات.

سيكون LXML تناسب احتياجاتك؟ إنها الأداة الأولى التي أنتقل إليها من أجل تحليل XML.

قبل بضع سنوات ، كتبت مكتبة للعمل معها منظم XML. يجعل XML أبسط من خلال وضع بعض الافتراضات المحدودة.

يمكنك استخدام XML لشيء مثل وثيقة معالج النصوص ، وفي هذه الحالة يكون لديك حساء معقد من الأشياء مع علامات XML مضمنة في كل مكان ؛ في هذه الحالة لن تكون مكتبتي جيدة.

ولكن إذا كنت تستخدم XML لشيء مثل ملف التكوين ، فإن مكتبتي مريحة إلى حد ما. يمكنك تحديد الفصول التي تصف بنية XML التي تريدها ، وبمجرد الانتهاء من الفصول الدراسية ، هناك طريقة لتخليصها في XML وتحليلها. يتم التحليل الفعلي بواسطة xml.dom.minidom ، ولكن بعد ذلك تستخرج مكتبتي البيانات وتضعها في الفصول.

أفضل جزء: يمكنك إعلان نوع "مجموعة" سيكون قائمة بيثون مع صفر أو أكثر عناصر XML الأخرى بداخلها. هذا رائع لأشياء مثل خلاصات Atom أو RSS (والتي كانت السبب الأصلي الذي صممت المكتبة).

ها هو عنوان URL: http://home.avvanta.com/~steveha/xe.html

سأكون سعيدًا بالإجابة على الأسئلة إذا كان لديك أي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top