एक स्ट्रिंग $str
से वांछित चरित्र अनुक्रम प्राप्त करने के लिए कार्य करता है string-to-code-points()
की जोड़ी और codepoints-to-string()
का उपयोग करें:
for $c in string-to-codepoints($str)
return
codepoints-to-string($c)
प्राप्त करने के लिए यह वर्ण अनुक्रम '/' के साथ जुड़ने के रूप में शामिल हो गया है, उपर्युक्त अभिव्यक्ति पर बस string-join()
लागू करें।
A/B/C
स्पष्टीकरण:
string-to-codepoints($str)
के अनुक्रम का उत्पादन
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:sequence select=
"string-join(
for $c in string-to-codepoints('ABC')
return
codepoints-to-string($c),
'/'
)
"/>
</xsl:template>
</xsl:stylesheet>
वांछित चरित्र अनुक्रम पैदा करता है:
यहाँ एक पूर्ण कोड उदाहरण है कोड-पॉइंट्स (उन्हें "चरित्र कोड" के रूप में सोचें) स्ट्रिंग के प्रत्येक वर्ण का प्रतिनिधित्व करते हैं।
उदाहरण के लिए;
65 66 67
codepoints-to-string($code-seq)
string-to-codepoints()
का प्रतिलोम समारोह है:
string-to-codepoints('ABC')
अनुक्रम पैदा करता है। कोडपॉइंट्स के अनुक्रम को देखते हुए, यह स्ट्रिंग का उत्पादन करता है, जिनके पात्र अनुक्रम में कोडपॉइंट्स द्वारा दर्शाए जाते हैं। इस प्रकार:
ABC
इसलिए:
for $c in string-to-codepoints($str)
return
codepoints-to-string($c)
$str
में प्रत्येक व्यक्ति के चरित्र का कोडपॉइंट हो जाता है और एक अलग स्ट्रिंग में बदल देता है
codepoints-to-string((65,66,67))
स्ट्रिंग पैदा करता है।
string-join()
का उपयोग करके हम प्रदान किए गए शामिल-चरित्र "/" का उपयोग करके ऐसे सभी अलग-अलग तारों में शामिल हो जाते हैं।
यह समाधान पूरी तरह से काम करता है, लेकिन मैं FailedDev का जवाब स्वीकार कर लिया है के रूप में यह छोटा और (सरल) लोग (मेरे जैसे) –
@TheArtfulBenny को समझने के लिए थोड़ा आसान है: आसान समझने के लिए ??? आप मजाक कर रहे है। –