अगर मेरी XSL फ़ाइल में निम्न तत्व है:
& lt; xsl: value- का चयन = "बदलें (निचले-मामला (@ नाम), '_ ([a-z0- 9])', '$ 1')" / & gt; उदाहरण के लिए 'get_polygene_lubricants' से 'getpolygenelubricants' बनाता है। मैं क्या करना चाहता हूँ '_' के बाद के बड़े अक्षर के साथ पहला अक्षर बदलने के लिए पत्र। मैं गोगल गया, दस्तावेज़ीकरण पढ़ा, लेकिन मुझे उस सरल प्रतिस्थापन के लिए एक्सएसएलटी में कोई समाधान नहीं मिला।
क्या शायद कोई जानता है कि क्या यह XSLT 2.0 में संभव है?
edited यह समाधान पुनरावर्तन का उपयोग नहीं करता है और इसे और अधिक कुशल होना चाहिए । यहां नया समाधान है : स्ट्रिंग-जॉइन ((1 $ में $ i के लिए गिनती (tokenize (।, '_')), $ S tokenize (।, '_') [$ I], $ fl में उपस्ट्रिंग ($ S, 1,1), उपरिथय में $ पूंछ ($ s, 2) अगर वापसी ($ i eq 1) फिर $ s else concat (ऊपरी-केस ($ fl), $ पूंछ)), '') < / कोड> परिणाम अब बिल्कुल एक है
बदलें underLinedString
नीचे पुराने समाधान है ।
() फ़ंक्शन का अनुमान है कि आपके पास एक निश्चित प्रतिस्थापन है - इसलिए यह इस समस्या को सुलझाने का सबसे अच्छा उपकरण नहीं है।
यहां एक एक लाइनर XPath 2.0 समाधान है (और यह निश्चित रूप से एक XSLT 2.0 रूपांतरण के हिस्से के रूप में इस्तेमाल किया जा सकता है): & nbsp; & nbsp; & nbsp; & nbsp;):
स्ट्रिंग-जॉइन (($ के लिए tokenize में ( ($ S, 2) रिटर्न कंसैट (ऊपरी-केस ($ fl), $ पूंछ)), '') < / Code>
जब हम एक्सएसएलटी 2.0 रूपांतरण में उपरोक्त अभिव्यक्ति का उपयोग इस तरह करते हैं :
& lt; xsl: stylesheet version = "2.0 "एक्सएमएलएनएस: एक्सएसएल =" http://www.w3.org/1999/XSL/Transform "xmlns: xs =" http://www.w3.org/2001/XMLSchema "& gt; & Lt; xsl: टेम्पलेट मैच = "/" & gt; & Lt; xsl: अनुक्रम का चयन करें = "स्ट्रिंग-जॉइन ((कोनकीज (।, '_') में $ s, उपस्ट्रिंग में $ fl ($ s, 1,1), उपपरिवर्तन में $ पूंछ ($ s, 2) रिटर्न कॉन्सैट (ऊपरी-केस ($ fl), $ पूंछ)), '') "/ & gt; & Lt; / XSL: टेम्पलेट & gt; & Lt; / XSL: स्टाइलशीट & gt;
और इस XML दस्तावेज़ पर इसे लागू करें:
& lt; t & gt; under_lined_String & lt; / t & gt;
इच्छित परिणाम का उत्पादन किया गया है :
UnderLinedString
Comments
Post a Comment