Ruby:
XML এর সাথে কাজ করা

কিভাবে:

চলুন Ruby সংযুক্ত REXML ব্যবহার করি একটি XML স্নিপেট পারস করার জন্য:

require 'rexml/document'
include REXML

xml_data = <<-XML
<fruits>
  <fruit name="apple" color="green"/>
  <fruit name="banana" color="yellow"/>
</fruits>
XML

document = Document.new(xml_data)
document.elements.each('fruits/fruit') { |element|
  puts "নাম: #{element.attributes['name']}, রঙ: #{element.attributes['color']}"
}

আউটপুট:

নাম: apple, রঙ: green
নাম: banana, রঙ: yellow

XML জেনারেট করাও সহজ:

doc = Document.new
doc.add_element 'fruits'
apple = doc.root.add_element 'fruit', {'name' => 'apple', 'color' => 'green'}
banana = doc.root.add_element 'fruit', {'name' => 'banana', 'color' => 'yellow'}
puts doc

XML আউটপুট:

<fruits>
  <fruit name="apple" color="green"/>
  <fruit name="banana" color="yellow"/>
</fruits>

গভীর ডুব:

XML-এর মূল সাল ১৯৯০ দশকে ওয়েব নথিগুলির জন্যে SGML এর একটি সরলীকৃত উপসেট হিসেবে ফিরে আসে। এটি বর্ণনামূলক কিন্তু উচ্চমাত্রার কাঠামোগত, এবং এটি কেন এটি সময়ের সাথে সাথে টিকে আছে। এটি শুধুমাত্র খেলার মাঠ নয়-JSON এবং YAML তাদের সরলতার জন্যে জনপ্রিয় হয়ে উঠেছে-কিন্তু XML অনেক এন্টারপ্রাইজ এবং লিগ্যাসি সিস্টেমে শক্ত অবস্থানে আছে।

Ruby XML-এর সাথে মোকাবেলা করার কয়েকটি উপায় প্রদান করে। REXML একটি সম্পূর্ণ-Ruby লাইব্রেরি যা দ্রুত ঝাঁপিয়ে পড়তে সহজ। Nokogiri একটি গেম যা দ্রুত C লাইব্রেরিগুলিকে জড়িত করে, গতি এবং অতিরিক্ত বৈশিষ্ট্য প্রদান করে। তাদের মধ্যে নির্বাচন করা? ছোট কাজের জন্য REXML দিয়ে শুরু করুন এবং আরও শক্তির প্রয়োজন হলে Nokogiriতে স্থানান্তরিত হন।

XML পারসিং এর আড়ালে হল স্ট্রিংগুলিকে DOM অথবা SAX মডেলে অনুবাদ করা। DOM মেমোরিতে একটি গাছ তৈরি করে, অন্যদিকে SAX ডকুমেন্টটিকে স্ট্রিম করে এবং পারস করার সময় ইভেন্টগুলি চালু করে। REXML উভয় মডেল অফার করে, কিন্তু Nokogiri দ্বারা ব্যবহৃত C এক্সটেনশনের চেয়ে ধীর হতে প্রবণ।

আরও দেখুন: