2011-06-02 5 views
5

मेरे पास एक पुराना पायथन ऐप है जो एचटीएमएल आउटपुट बनाने के लिए कुछ एक्सएमएल डेटा (दो प्रकार के एक्सएमएल फाइलों को अपने संबंधित एक्सएसएलटी वाले के साथ) बदलने के लिए एक्सएसएलटी का उपयोग करता था।XSLT का उपयोग करने के लिए उपयोग की जाने वाली एक पायथन स्क्रिप्ट को स्मार्ट तरीके से फिर से लिखना कैसे है?

मैं इस ऐप को एपेंगिन करने के लिए पोर्ट करना चाहता हूं, लेकिन, दुख की बात है कि, ऐपेंगिन का पायथन संस्करण xslt का समर्थन नहीं करता है।

क्या मेरे कोड को मैन्युअल रूप से पार्सिंग और एक्सएमएल इनपुट में दिए गए टैग की जांच किए बिना फिर से लिखने का कोई आसान तरीका है?

दूसरे शब्दों में, क्या आपको ऐसा करने के लिए एक सामान्य तरीका है?

धन्यवाद और मेरी खराब अंग्रेजी के लिए खेद है!

+0

आपकी अंग्रेजी बहुत अच्छी है, अपने आप को कम मत करें। –

+0

धन्यवाद, @ राफ, यह वास्तव में चौथी भाषा है जिसे मैंने सीखा है। तो, मैं अपना सर्वश्रेष्ठ कर रहा हूं :) – Liza

+0

क्या आपको इसे सर्वर की तरफ करने की ज़रूरत है? अन्यथा आप ऐसा करने के लिए क्लाइंट पक्ष पर जावास्क्रिप्ट का उपयोग कर सकते हैं। –

उत्तर

2

दुर्भाग्यवश शुद्ध पायथन में कोई काम नहीं कर रहा एक्सएसएलटी कार्यान्वयन है। आप ज्योथन पर चलाने के लिए अपने पायथन कोड को अनुकूलित करने में सक्षम हो सकते हैं, जो आपको जावा के एक्सएसएलटी कार्यान्वयन तक पहुंच प्रदान करेगा। यह इस blog post में वर्णित है।

आपको यह तय करना होगा कि आपके मौजूदा कोड को पोर्टिंग/परीक्षण करने के लिए ज्योथन को अपने स्वयं के केस विशिष्ट एक्सएमएल पार्सर/ट्रांसफॉर्मर लिखने से बेहतर विकल्प है।

+0

धन्यवाद एंथनी, मैं वास्तव में उस ब्लॉग पोस्ट पर रहा हूं, लेकिन ईमानदारी से यह जीएई पर जैटन (जिसे मैंने कभी भी बीटीडब्ल्यू का उपयोग नहीं किया है) स्थापित करने के लिए बहुत संघर्ष देखा है। वैसे भी धन्यवाद :) – Liza

+0

यह बिल्कुल संघर्ष नहीं है। आपको बस एक ज़िप फ़ाइल डाउनलोड करना है, इसे निर्देशिका संरचना में निकालना है, कुछ फ़ाइलों को चारों ओर ले जाएं, एक WAR फ़ाइल बनाने के लिए एकल "जार" कमांड का उपयोग करें, फिर AppEngine पर अपलोड करें। निर्देश यहां हैं [Google AppEngine पर Jython] (http://opensource.xhaus.com/projects/1/wiki/ModjyGoogleAppEngine) –

0

आप एक्सएसएलटी ट्रैनफॉर्मेशन करने के लिए lxml का उपयोग कर सकते हैं, और एलएक्सएमएल पुराने पायथन संस्करणों के साथ काम करना चाहिए (वेब ​​साइट का कहना है कि यह 2.3 से 3.2 का समर्थन करता है)।

+0

'lxml' सी पुस्तकालयों के चारों ओर एक रैपर है, शुद्ध पायथन नहीं; जैसे कि इसे ऐपइंजिन पर इस्तेमाल नहीं किया जा सकता है। –

0

अपने XSLTs नहीं कर रहे हैं भी घृणित है, यह नहीं बहुत कठिन अजगर को बंदरगाह उन्हें ElementTree के iterparse फ़ंक्शन का उपयोग करने के लिए हो सकता है (http://effbot.org/zone/element-iterparse.htm, और http://www.dalkescientific.com/writings/diary/archive/2006/11/06/iterparse_filter.html देखें)।

आपको अपने एक्सएसएलटी टेम्पलेट्स को पाइथन फ़ंक्शन के रूप में फिर से लिखना होगा जिसे तत्व "ईवेंट" के रूप में पार्सिंग के दौरान बुलाया जा सकता है, और आपको कुछ दस्तावेज़ों को संग्रहीत करना पड़ सकता है ताकि कुछ प्रकार के xsl: template/@ match पैटर्न को संभाला जा सकता है, लेकिन शायद यह बहुत बुरा नहीं होगा।

संबंधित मुद्दे

 संबंधित मुद्दे