डिफ़ॉल्ट रूप से, जब आप ElementTree.parse (someXMLfile) कहते हैं इसके साथ हर पार्स नोड नाम स्थान यूआरआई है पायथन ElementTree पुस्तकालय उपसर्गों क्लार्क नोटेशन में ElementTree साथ लगाकर:ऑल्टर नाम स्थान अजगर
{http://example.org/namespace/spec}mynode
इस विशिष्ट नोड्स तक पहुँचने बनाता है बाद में कोड में एक बड़ा दर्द नाम से।
मैंने एलिमेंटट्री और नेमस्पेस पर दस्तावेज़ों के माध्यम से पढ़ा है और ऐसा लगता है कि iterparse()
फ़ंक्शन मुझे पार्सर उपसर्गों के नामों को बदलने की अनुमति दे सकता है, लेकिन मेरे जीवन के लिए मैं वास्तव में इसे उपसर्ग नहीं बदल सकता । ऐसा लगता है कि कि एनएस शुरू घटना से पहले पृष्ठभूमि में हो सकता है यहां तक कि इस उदाहरण में आग:
for event, elem in iterparse(source):
if event == "start-ns":
namespaces.append(elem)
elif event == "end-ns":
namespaces.pop()
else:
...
मैं कैसे करूँ यह लगाकर व्यवहार को बदलने बनाने के लिए और जब समारोह समाप्त होता है वापस जाने के लिए उचित बात क्या है ?
दिलचस्प। मुझे भी जानना अच्छा लगेगा। जिस तरह से मैं आगे बढ़ता हूं वह "स्थिर" एक्सएचटीएमएल_एनएस = '{http://www.w3.org/1999/xhtml}' बनाकर और फिर कोड XHTML_NS + "mynode" – karlcow
में उपयोग करके है, क्या आप समझा सकते हैं कि आप वास्तव में क्या हासिल करने की कोशिश कर रहे हैं ? क्लार्क का नोटेशन एक बड़ा दर्द क्यों है? –
मैं मौजूदा कोड के साथ एकीकृत करने की कोशिश कर रहा हूं जो '{http://a9.com/-/spec/opensearchrss/1.0/}' की बजाय उनके मूल उपसर्ग (यानी 'ओपन सर्च') द्वारा चीजों तक पहुंचता है और मैं उम्मीद कर रहा था @karlcow का उल्लेख है कि उपसर्ग मानचित्र के प्रकार के निर्माण से एक अच्छा तरीका था। –