স্ট্রিং উত্স থেকে পাইথন এক্সএমএল এলিমেন্ট্রি?


117

এলিমেন্ট্রি ট্রিপস একটি ফাইল থেকে পড়ে, যদি আমার কাছে ইতিমধ্যে স্ট্রিংয়ের এক্সএমএল ডেটা থাকে তবে আমি এটি কীভাবে ব্যবহার করতে পারি?

হতে পারে আমি এখানে কিছু মিস করছি, তবে অবশ্যই কোনও ফাইলের স্ট্রিং না লিখে আবার পড়া না করে এলিমেন্ট্রি ব্যবহার করার একটি উপায় থাকতে হবে।

xml.etree.elementtree


2
হাই জর্জ আপনি যদি দ্বিতীয় উত্তরটি (ডগাসাওয়ে) সঠিক উত্তর হিসাবে গ্রহণ করতে পারেন তবে তা দুর্দান্ত হবে।
ফামারগার

উত্তর:


89

আপনি যদি xml.etree.ElementTree.parseকোনও ফাইল থেকে বিশ্লেষণ করতে ব্যবহার xml.etree.ElementTree.fromstringকরছেন তবে আপনি পাঠ্য থেকে পার্স করতে ব্যবহার করতে পারেন ।

Xml.etree.ElementTree দেখুন


38
সমস্যাটি হচ্ছে এলিমেন্টটি ট্রি.ফর্মস্ট্রিং একটি এলিমেন্ট জেনারেট করে, এবং এলিমেন্ট ট্রি না! কেউ কি জানেন কীভাবে এটিকে ঘিরে কাজ করা যায়?
স্যামুয়েল লম্পা

4
@ সামুয়েলল্যাম্পা উল্লিখিত হিসাবে একই সমস্যা। আমি একটি এলিমেন্ট্রি নই, আমি এটির getroot()জন্য করতে সক্ষম নই
সিদ্ধার্থ মেনন

23
@ সামুয়েলল্যাম্পা ডিজাসাওয়ের উত্তর দেখুন , দেখুনET.ElementTree(ET.fromstring(xmlstring))
কলিন পিকার্ড

6
সঠিক উত্তরের জন্য, @dgassaway
২.7১৮

আমদানির বিবৃতিগুলি ভুলে যাবেন না
স্টিভয়েসিয়াক

225

আপনি পাঠ্যটিকে স্ট্রিং হিসাবে পার্স করতে পারেন যা একটি এলিমেন্ট তৈরি করে এবং সেই এলিমেন্টটি ব্যবহার করে একটি এলিমেন্ট্রি তৈরি করতে পারে।

import xml.etree.ElementTree as ET
tree = ET.ElementTree(ET.fromstring(xmlstring))

আমি কেবল এই ইস্যুটি জুড়ে এসেছি এবং সম্পূর্ণরূপে ডকুমেন্টেশন parse()এবং fromstring()পদ্ধতিগুলির মধ্যে ব্যবহারের পার্থক্য সম্পর্কে খুব সোজা নয় ।


5
দ্বিতীয় লাইন সহজভাবে হতে পারে root = ET.fromstring(xmlstring)। সমান ET.parse('file.xml').getroot(): ডকস.পিথন.অর্গ
আন্তন

3
@ অ্যান্টন, ওপি যেমন বলেছে, ধারণাটি এলিমেট্রি নয়, এলিমেন্ট তৈরি করা। উদাহরণস্বরূপ, আপনি যখন এলিমেট্রি.উইরাইট () ব্যবহার করতে চান এটি দরকারী।
ব্যাটব্র্যাট

16

তোমার দরকার xml.etree.ElementTree.fromstring(text)

from xml.etree.ElementTree import XML, fromstring
myxml = fromstring(text)

1

io.StringIO মধ্যে এক্সএমএল পাবার জন্য অন্য বিকল্প xml.etree.ElementTree :

import io
f = io.StringIO(xmlstring)
tree = ET.parse(f)
root = tree.getroot()

যাইহোক, এটি এক্সএমএল ঘোষণাকে প্রভাবিত করে না যে এটির মধ্যে থাকা ধারণা করা হবে tree(যদিও এটি এলিমেট্রি.উইরাইটের জন্য প্রয়োজন ) ( )। দেখুন xml.etree.ElementTree ব্যবহার এক্সএমএল ঘোষণা লিখতে কিভাবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.