xsl

2009-02-24 13 views
13

का उपयोग कर फ़ाइल नाम प्राप्त करें xsl 1.0 का उपयोग कर फ़ाइल नाम कैसे प्राप्त कर सकता हूं?xsl

मैं

<xsl:value-of select="base-uri()" /> 

कोशिश की, लेकिन मिल गया "घातक त्रुटि समारोह नहीं मिलाः! आधार uri"

उत्तर

15

ऐसी कोई XPath समारोह, या XPath कार्य करने के लिए XSLT विस्तार यह करने के लिए नहीं है एक्सएसएलटी v1/XPath v1 में।

कोई फ़ाइल नहीं होने के लिए यह काफी संभव है, और यदि XSLT इंजन के पास फ़ाइल नाम रखने का कोई कारण नहीं है (फ़ाइल सामग्री को बफर में लोड करने पर विचार करें, बफर को एक डोम में पार्स करना और फिर गुजरना एक्सएसएलटी प्रोसेसर के लिए डीओएम)।

आपको ट्रांसफॉर्म में पैरामीटर के रूप में उपलब्ध होने के लिए प्रोसेसर में फ़ाइल नाम पारित करने की आवश्यकता होगी।

+0

परेशान अगर आप सिर्फ 'स्टाइल शीट एक्स' का उपयोग करके बनाया गया है :-( –

+4

-1: XPath 2.0 में ऐसा कोई फ़ंक्शन है (टी देखें वह अन्य उत्तर) –

+2

@ नॉर्मन ग्रे: प्रश्न का अंत यह स्पष्ट करता है कि यह एक्सएसएलटी v1 है, इसलिए ऐसे वी 2 फ़ंक्शन की उपस्थिति अप्रासंगिक है। – Richard

30

base-uri() एक मानक XPath 2.0 फ़ंक्शन है, इसलिए XSLT 1.0 चलाते समय यह फ़ंक्शन अनुपलब्ध होगा।

XSLT 1.0 फ़ाइल नाम में (क्या की?) परिवर्तन के लिए एक पैरामीटर के रूप में पारित किया जा सकता है।

नोट नोट करें कि स्टाइलशीट के लिए या किसी XML दस्तावेज़ के लिए फ़ाइल नाम बनाना हमेशा संभव नहीं है - या तो दोनों संबंधित फाइल के बिना स्मृति में रह सकते हैं।

यह समस्या से स्पष्ट नहीं है कि फ़ाइल नाम का उत्पादन किया जाना चाहिए।

वर्तमान दस्तावेज़ की फ़ाइल नाम:

यहाँ XPath 2.0/XSLT 2.0 में फ़ाइल नाम लगाने के लिए कैसे है

base-uri() 

वर्तमान स्टाइलशीट मॉड्यूल के फ़ाइल नाम:

base-uri(document('')) 
संबंधित मुद्दे