আমি কীভাবে ElementTree.Element
একটি স্ট্রিংয়ে রূপান্তর করব ?
পাইথন 3 এর জন্য:
xml_str = ElementTree.tostring(xml, encoding='unicode')
পাইথন 2 এর জন্য:
xml_str = ElementTree.tostring(xml, encoding='utf-8')
নীচে পাইথন 2 এবং 3 উভয়ের সাথেই সামঞ্জস্যপূর্ণ তবে এটি কেবল লাতিন অক্ষরের জন্য কাজ করে :
xml_str = ElementTree.tostring(xml).decode()
ব্যবহারের উদাহরণ
from xml.etree import ElementTree
xml = ElementTree.Element("Person", Name="John")
xml_str = ElementTree.tostring(xml).decode()
print(xml_str)
আউটপুট:
<Person Name="John" />
ব্যাখ্যা
সত্ত্বেও কি নাম থেকেই বোঝা, ElementTree.tostring()
পাইথন 2 & 3 ডিফল্টরূপে একটি bytestring ফেরৎ এই পাইথন 3 একটি বিষয়, যা স্ট্রিং জন্য ইউনিকোড ব্যবহার ।
পাইথন 2 এ আপনি str
উভয় পাঠ্য এবং বাইনারি ডেটা ব্যবহার করতে পারেন । দুর্ভাগ্যক্রমে দুটি ভিন্ন ধারণার এই সঙ্গমের ফলে ভঙ্গুর কোড হতে পারে যা কখনও কখনও উভয় ধরণের ডেটার জন্য কাজ করে, কখনও না। [...]
পাঠ্য এবং বাইনারি ডেটা পরিষ্কার এবং আরও সুস্পষ্টর মধ্যে পার্থক্য তৈরি করার জন্য, [পাইথন 3] পাঠ্য এবং বাইনারি ডেটা স্বতন্ত্র প্রকার তৈরি করেছে যা অন্ধভাবে একত্রে মিশ্রিত করা যায় না ।
উত্স: পাইথন পোর্টিং 2 কোড থেকে পাইথন 3
পাইথনের কোন সংস্করণটি ব্যবহার করা হচ্ছে তা আমরা যদি জানি তবে আমরা এনকোডিংটি হিসাবে unicode
বা হিসাবে নির্দিষ্ট করতে পারি utf-8
। অন্যথায়, পাইথন 2 এবং 3 উভয়ের সাথে আমাদের যদি সামঞ্জস্যতা প্রয়োজন হয় তবে আমরা decode()
সঠিক ধরণের রূপান্তর করতে ব্যবহার করতে পারি ।
রেফারেন্সের জন্য, আমি .tostring()
পাইথন 2 এবং পাইথন 3 এর মধ্যে ফলাফলগুলির একটি তুলনা অন্তর্ভুক্ত করেছি ।
ElementTree.tostring(xml)
# Python 3: b'<Person Name="John" />'
# Python 2: <Person Name="John" />
ElementTree.tostring(xml, encoding='unicode')
# Python 3: <Person Name="John" />
# Python 2: LookupError: unknown encoding: unicode
ElementTree.tostring(xml, encoding='utf-8')
# Python 3: b'<Person Name="John" />'
# Python 2: <Person Name="John" />
ElementTree.tostring(xml).decode()
# Python 3: <Person Name="John" />
# Python 2: <Person Name="John" />
পাইথন 2 এবং 3 এর মধ্যে ডেটাটাইপ পরিবর্তিত হয়েছে তা নির্দেশ করার জন্য মার্টিজন পিটার্সকে ধন্যবাদ str
।
কেন str () ব্যবহার করবেন না?
বেশিরভাগ পরিস্থিতিতে, কোনও বিষয়টিকে স্ট্রিংয়ে রূপান্তর করার str()
জন্য " কামানিকাল " উপায়টি ব্যবহার করা হত । দুর্ভাগ্যক্রমে, এর সাহায্যে এটি ব্যবহার Element
করে অবজেক্টের ডেটার স্ট্রিং উপস্থাপনার পরিবর্তে মেমরিটিতে হেক্সস্ট্রিং হিসাবে বস্তুর অবস্থান ফিরে আসে।
from xml.etree import ElementTree
xml = ElementTree.Element("Person", Name="John")
print(str(xml))
ElementTree.tostring()
এ একটি বাইস্টেরিংও উত্পন্ন করে।str
টাইপ একটি bytestring হয় পাইথন 2 (পাইথন 3 এরstr
টাইপ বলা হয়unicode
পাইথন 2)।