मैं XSLT का उपयोग करने के लिए HTML के लिए एक सरल XML स्कीमा परिवर्तित करने के लिए कोशिश कर रहा हूँ और fn:replace
उपयोग करने के लिए <p>;
साथ रिटर्न (\n
) को बदलने के लिए योजना बनाई से बदलें। हालांकि, मैं यह नहीं समझ सकता कि इस फ़ंक्शन का सही तरीके से उपयोग कैसे करें।का उपयोग XPath समारोह fn: XSLT
XSLT मैं उपयोग कर रहा हूँ का एक सरलीकृत संस्करण में लिखा है:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:template match="/root">
<html>
<body>
<!-- Replace \n with <p> -->
<xsl:value-of select="fn:replace(value, '\n', '<p>')" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
और यह XLST के लिए इनपुट, उदा है .:
<?xml version="1.0"?>
<root>
<value><![CDATA[
Hello
world!
]]></value>
</root>
रूपांतरण एक NoSuchMethodException साथ fn:replace
पर विफल रहता है। यदि मैं प्रतिस्थापन कथन को
<xsl:value-of select="fn:replace('somestring', '\n', '<p>')" />
पर एक IllegalArgumentException प्राप्त करता है। मैं क्या चाहता हूं प्राप्त करने के लिए fn:replace
का उपयोग कैसे करूं?
मैं एक्सएसएलटी का परीक्षण करने के लिए Butterfly XML Editor का उपयोग कर रहा हूं।
Thx, XSLT 2.0 का उल्लेख करते हुए मुझे सही दिशा में धक्का दिया। के संस्करण विशेषता को बंप करके; 2.0 तक और ; मुझे नौकरी मिल गई। हो सकता है कि विश्लेषण-स्ट्रिंग क्लीनर है लेकिन यह काम पूरा हो जाता है :) –
larsmoa
क्या आपने संस्करण को 2.0 पर टक्कर देने के अलावा कुछ और किया था? –
क्या आप मुझे बता सकते हैं कि 2.0 के संस्करण विशेषता को कैसे बंप करना है? –