في البداية، كان المقصود من لغة XML فقط أن تكون بديلاً للغة HTML، ومع ذلك، مع استمرار اللغة في التطور والتحسين، يكتشف الأشخاص بشكل متزايد مزاياها: مثل لغة الترميز القابلة للتوسيع والأحكام الصارمة والقدرة على الاستخدام العلامات ذات المعنى، والفصل بين تخزين المحتوى وعرضه، وغيرها من المزايا التي جعلت اللغة رائعة منذ يوم ولادتها. لقد دخلت لغة XML فترة من التطور السريع بعد أن أصبحت معيارًا لـ W3C، وبطبيعة الحال، فإن سلسلة المزايا والمزايا الخاصة بها قد دفعت أيضًا الشركات المصنعة للتكنولوجيا الكبرى إلى تفضيلها بسرعة، باعتبارها تقنية تطوير في صناعة البرمجيات استجابة لذلك، ظهرت مجموعة متنوعة من الأدوات لدعم XML. ستقدم هذه المقالة العديد من التقنيات السائدة لمعالجة XML في Java من هذا المنظور.
ما هي المكتبات والأدوات الممتازة التي تمتلكها Java لتسهيل معالجة XML للمبرمجين؟
مقدمة لطرق تحليل XML الثلاثة: DOM الشهير
ليس من قبيل المبالغة القول إن DOM هو واجهة برمجة التطبيقات القياسية W3C لمعالجة XML، وهو الأساس للعديد من المعايير الأخرى المتعلقة بمعالجة XML، وليس Java فقط، ولكن أيضًا لغات أخرى مثل Javascript وPHP. MS.NET وما إلى ذلك أصبح هذا المعيار هو أسلوب معالجة XML الأكثر استخدامًا. بالطبع، من أجل توفير المزيد والمزيد من الوظائف القوية، تحتوي Java على العديد من فئات أدوات الامتداد المباشرة لـ DOM، مثل JDOM وDOM4J وما إلى ذلك، وهي مألوفة لدى العديد من مبرمجي Java وهي في الأساس توسيعات لوظائف واجهة DOM الكثير من DOM نظرًا لخصائص واجهة برمجة التطبيقات (API)، فقد أتقن العديد من مبرمجي DOM الأصليين استخدام الاثنين الآخرين دون أي عقبات، كما أن الطريقة البديهية وسهلة التشغيل تجعله محبوبًا للغاية من قبل غالبية مبرمجي Java.
ساكس أخضر وصديق للبيئة
لظهور SAX احتياجاته الخاصة، لماذا يُقال إنه صديق للبيئة وصديق للبيئة، وذلك لأن SAX يستخدم أقل موارد النظام وأسرع طريقة تحليل لتقديم الدعم لمعالجة XML. لكن طرق البحث المرهقة التي تأتي معها تجلب أيضًا الكثير من المتاعب للمبرمجين، وغالبًا ما تسبب الصداع. وفي الوقت نفسه، فإن دعمها لوظيفة الاستعلام XPath يجعل الناس يحبونها ويكرهونها.
الهاضم الغامض: JavaBeanization of XML
Digester هو مشروع مفتوح المصدر تابع لمؤسسة Apache، ويأتي فهم المؤلف له من خلال البحث في إطار عمل Struts. هل هناك العديد من المبرمجين الذين يرغبون في فهم تصميم الأطر الرئيسية مفتوحة المصدر أو حتى يريدون كتابة إطار عمل قوي بأنفسهم؟ ستواجه مثل هذه المشكلة: ما هي التقنية المستخدمة في الجزء السفلي من إطار العمل لتحليل ملفات تكوين إطار العمل المتنوعة المميزة بلغة XML؟ يستغرق تحليل DOM وقتًا طويلاً، كما أن تحليل SAX مرهق للغاية، وسيكون حمل النظام لكل تحليل مرتفعًا جدًا، لذلك اعتقد الجميع أنه يجب استخدام JavaBeans المطابق لبنية XML لتحميل هذه المعلومات، وظهر Digester. يجلب ظهوره واجهة تشغيل مريحة للحاجة إلى تحويل XML إلى كائنات JavaBean، بحيث يمكن للاحتياجات الأكثر تشابهًا الحصول على حل أكثر مثالية، ولم يعد المبرمجون بحاجة إلى تنفيذ إجراءات التحليل المرهقة هذه بأنفسهم. في الوقت نفسه، أطلقت SUN أيضًا فئة أدوات تحويل XML وJavaBean JAXB، ويمكن للقراء المهتمين التعرف عليها بأنفسهم.
دعونا نلقي نظرة على مثال لتحليل Java dom XML:
import java.io.*; import org.w3c.dom.*; import org.xml.sax.SAXException; import javax.xml.parsers.*; public class Xml { public static void main(String[] args) { DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance(); حاول { DocumentBuilder builder =factory.newDocumentBuilder(); builder.parse(new File("E://work//test//xml1.xml")); NodeList nl = doc.getElementsByTagName("book"); ); i++) { System.out.println(nl.item(i).getAttributes().item(0)); System.out.println(doc.getElementsByTagName("title").item(i) .getFirstChild().getNodeValue()); System.out.println(doc.getElementsByTagName("title").item(i) .getAttributes ().البند(0)); System.out.println(doc.getElementsByTagName("author").item(i) .getFirstChild().getNodeValue()); System.out.println(doc.getElementsByTagName("year").item(i) .getFirstChild ().getNodeValue()); System.out.println(doc.getElementsByTagName("price").item(i) .getFirstChild().getNodeValue()); System.out.println(); } } Catch (ParserConfigurationException e) { e.printStackTrace()); } قبض (SAXException e) { e.printStackTrace() } قبض (IOException e) {؛ e.printStackTrace(); } } }
أكس أم أل:
<bookstore> <book class="COOKING"> <title lang="en">الإيطالية اليومية</title> <author>جيادا دي لورينتيس</author> <year>2005</year> <price>30.00</price > </book> <book class="CHILDREN"> <title lang="ar">هاري بوتر</title> <author>جيه كيه رولينج</author> <year>2005</year> <price>29.99 </السعر> </book> <book class="WEB"> <title lang="en">تعلم لغة XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95< /السعر> </book> </bookstore>
نتيجة:
الفئة = "الطبخ" Everyday Italianlang = "ar"Giada De Laurentiis200530.00category = "الأطفال"هاري بوترلانغ = "ar" جيه كيه رولينج200529.99category = "WEB"تعلم XMLlang = "ar"إريك تي راي200339.95