मैं जेनेरिक एक्सएमएल फाइलों को मानकीकृत करने के लिए एक पायथन लिपि लिखने की कोशिश कर रहा हूं, जो वेबसाइटों और वेबसाइट फॉर्मों को कॉन्फ़िगर करने के लिए उपयोग किया जाता है। हालांकि ऐसा करने के लिए मैं या तो तत्वों के मूल विशेषता क्रम को बनाए रखना चाहता हूं, या इससे पहले कि उन्हें पूर्व परिभाषित तरीके से पुनर्व्यवस्थित करने में सक्षम हो। वर्तमान में अधिकांश एक्सएमएल पार्सर्स मैंने अल्फा-न्यूमेरिक होने के लिए विशेषता ऑर्डर को फिर से लिखने का प्रयास किया है। चूंकि ये एक्सएमएल फाइलें मानव पढ़ी/लिखी और रखी जाती हैं, यह बहुत उपयोगी नहीं है।एलिमेंट्री सेटिंग विशेषता ऑर्डर
उदाहरण के लिए एक्सएमएल में एक सामान्य तत्व ऐसा दिखाई दे सकता है;
<Question QuestionRef="XXXXX" DataType="Integer" Text="Question Text" Availability="Shown" DefaultAnswer="X">
हालांकि एक बार ElementTree और फिर से लिखा एक नई फ़ाइल में के माध्यम से पारित इस के लिए बदल गया है: क्रम में एक्सएमएल फाइल की एक बड़ी संख्या के मानकीकरण के लिए स्क्रिप्ट का उद्देश्य के रूप में
<Question Availability="Shown" DataType="Integer" DefaultAnswer="X" PartType="X" QuestionRef="XXXXX" Text="Question Text">
है करने के लिए सहकर्मियों के बीच पठनीयता में वृद्धि और तत्व के गुणों में निहित जानकारी में महत्व के विभिन्न स्तर होते हैं (उदा। प्रश्नोत्तर अत्यंत महत्वपूर्ण है), यह बताता है कि विशेषताओं को समझदारी से आदेश दिया जाना चाहिए।
मैं समझता हूं कि पाइथन डिक्ट्स (जो गुणों को संग्रहीत किया जाता है) स्वाभाविक रूप से अनियंत्रित हैं और एक्सएमएल विनिर्देशन राज्य विशेषता ऑर्डरिंग महत्वहीन है, लेकिन यह मानव पठनीयता कारक स्क्रिप्ट के पीछे चालक शक्ति है।
अन्य प्रश्नों में (स्टैक ओवरफ़्लो पर) इस तरह के समान मैंने देखा है कि pxdom ऐसा कर सकता है (प्रश्न लिंक: link), लेकिन मुझे यह नहीं पता कि यह pxdom दस्तावेज़ में ऐसा कैसे कर सकता है या एक Google खोज का उपयोग कर। तो क्या गुणों का क्रम बनाए रखने या वर्तमान एक्सएमएल पार्सर्स के साथ इसे परिभाषित करने का कोई तरीका है? पसंदीदा रूप से हॉटपैचिंग का उपयोग किए बिना :)!
कोई भी सहायता जो भी प्रदान कर सकता है उसकी सराहना की जाएगी :)।
मेरा पहला यद्यपि यह है कि शायद आपको मानव संपादन के लिए एक अलग फ़ाइल प्रारूप (जैसे yaml?) का उपयोग करना चाहिए - और फिर सिस्टम द्वारा आवश्यक होने पर एक्सएमएल में अनुवाद करना चाहिए ... –
यदि गुणों का क्रम महत्वपूर्ण है, तो क्या आपने उप तत्वों का उपयोग करने पर विचार किया है (उदाहरण: '<उपलब्धता> दिखाया गया उपलब्धता>') इसके बजाय? वहां, आदेश निश्चित रूप से संरक्षित है। – Constantinius
समस्या है कि एक्सएमएल सी # कोड को पास किया गया है जो एचटीएमएल और जावास्क्रिप्ट में वेबसाइटें उत्पन्न करता है। यह कोड लगभग 5 वर्षों में विकसित किया गया है, बल्कि भारी है। इसलिए एक्सएमएल से स्विचिंग असुरक्षित है क्योंकि उपलब्धता को उप-तत्व में ले जाया जा रहा है। हालांकि मदद के लिए धन्यवाद :) –