मैंने वास्तव में एक पुस्तकालय लिखा है जो चीजों को ठीक उसी तरह करता है जिस तरह से आपने कल्पना की थी। लाइब्रेरी को "xe" कहा जाता है और आप इसे प्राप्त कर सकते हैं: http://home.avvanta.com/~steveha/xe.html
xe आपको ऑब्जेक्ट उन्मुख तरीके से डेटा के साथ काम करने के लिए XML आयात कर सकता है। यह वास्तव में पार्सिंग करने के लिए xml.dom.minidom का उपयोग करता है, लेकिन फिर यह परिणामी पेड़ पर चलता है और डेटा को xe ऑब्जेक्ट्स में पैक करता है।
संपादित करें: ठीक है, मैं आगे बढ़ गया और xe में अपना उदाहरण लागू किया, ताकि आप देख सकें कि यह कैसे काम करता है। आपके द्वारा दिखाए गए एक्सएमएल को लागू करने के लिए कक्षाएं यहां दी गई हैं:
import xe
class Node(xe.TextElement):
def __init__(self, text="", value=None):
xe.TextElement.__init__(self, "node", text)
if value is not None:
self.attrs["value"] = value
class Root(xe.NestElement):
def __init__(self):
xe.NestElement.__init__(self, "root")
self.node = Node()
और यहां उपर्युक्त का उपयोग करने का एक उदाहरण है। मैंने अपना नमूना एक्सएमएल "example.xml" नामक फ़ाइल में रखा है, लेकिन आप इसे एक स्ट्रिंग में भी डाल सकते हैं और स्ट्रिंग पास कर सकते हैं।
>>> root = Root()
>>> print root
<root/>
>>> root.import_xml("example.xml")
<Root object at 0xb7e0c52c>
>>> print root
<root>
<node value="30">text</node>
</root>
>>> print root.node.attrs["value"]
30
>>>
ध्यान दें कि इस उदाहरण में, "मान" का प्रकार एक स्ट्रिंग होगा। यदि आपको वास्तव में किसी अन्य प्रकार के गुणों की आवश्यकता है, तो यह भी कुछ काम के साथ संभव है, लेकिन मैंने इस उदाहरण के लिए परेशान नहीं किया। (यदि आप ओपीएमएल देखते हैं, तो ओपीएमएल के लिए एक कक्षा है जिसमें एक विशेषता है जो पाठ नहीं है।)
क्या XPath उपयोगकर्ता के अनुकूल के रूप में गिना जाता है? http://stackoverflow.com/questions/8692/how-to-use-xpath-in-python – Welbog
मुझे इसके जावा संस्करण में बहुत दिलचस्पी होगी! – Federer