python - Using a remote stylesheet that includes other stylesheets with relative paths -
मैं lxml.etree.XSLT
का उपयोग कर किसी DocBook दस्तावेज़ पर एक XSL ट्रांसफ़ॉर्म करना चाहता हूं ।
यद्यपि यह दस्तावेज बताता है कि etree.XSLT ()
पहले xslt_input
के पहले पैरामीटर लेता है, तो मुझे उस पर कोई डॉक्स नहीं मिल सकता है यह पैरामीटर होना चाहिए इसे पढ़ने वाली फाइल को पास करने के लिए खुला है;
संपादित करें एक विवेक जांच के बाद, मुझे एहसास हुआ कि etree.XSLT
एक पार्स किया जाता है etree ._ElementTree
। इसलिए । । । हो सकता है कि किसी तत्व के पेड़ को ऐसे तरीके से पार्स करने का एक तरीका है जो उसे सापेक्ष पथों के मानचित्रण के लिए उपयोग करने का पथ प्रदान करता है? । । । जांच कर रहा है।
यदि एक्सएमएल फाइल जो इसे पारित की जाती है तो दूसरे को शामिल किया गया है, इसमें शामिल बयान शामिल हैं, वर्तमान कार्य निर्देशिका से लिया जाता है।
मैं इस वर्ग का उपयोग करना चाहता हूं किसी DocBook दस्तावेज़ को परिणत करें, और दूरस्थ रूप से डॉकबुक एक्सएसएल तक पहुंचने में सक्षम होना पसंद करेंगे। डॉकबुक एक्सएसएल बहुत जटिल है, और कई अन्य फाइलें भी शामिल हैं क्या कोई तरीका है कि मैं इन फ़ाइलों को किसी दूरस्थ स्थान से खींचने के लिए etree.XSLT
का कारण बना सकता हूं?
यह वास्तव में मृत आसान है, मुझे मानसिक अपच होता था, और भूल गया कि XSL स्टाइलशीट को पार्स करने के सभी महत्वपूर्ण मध्यवर्ती चरण थे। यह उस समय पर है कि आप इसे स्टाइलशीट के लिए आधार यूआरएल जानते हैं।
यदि आप यूआरएल से स्टाइलशीट को पकड़ लेते हैं, तो यह यूआरएल से इसे घटा देता है। मुझे नहीं पता था कि यह पहली बार एक विकल्प था, जो शायद मेरे भ्रम की शुरुआत हो।
अन्यथा आप base_url
पैरामीटर के माध्यम से स्थान को पारित कर सकते हैं।
तीन आसान चरणों में:
& gt; & gt; & gt; Xsl_url = 'http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl' & gt; & gt; & gt; दस्तावेज़ = 'पथ / में / document.xml' & gt; & gt; & gt; Output_filename = 'path / to / transformed-document.xhtml' & gt; & gt; & gt; Lxml आयात एट्री से & gt; & gt; & gt; परिणत = etree.XSLT (etree.parse (xsl_url)) & gt; & gt; & gt; एफ के रूप में खुले (दस्तावेज़) के साथ: & gt; & gt; & gt; ट्रांसफार्मड_डेटा = ट्रांसफॉर्म (एट्री.परसे (एफ))> gt; & gt; & gt;
वोइला!
जो मैं कर रहा था वह स्थानीय फाइल से स्टाइलशीट etree
को प्रारंभ कर रहा था, अधिकतर कारण मुझे नहीं पता था कि मैं बस एक यूआरएल में पास कर सकता था।
Comments
Post a Comment