2012-07-23 11 views
8

मेरे पास एक स्टाइलशीट है जहां मैं xsl टेक्स्ट तत्व में पूर्वनिर्धारित स्ट्रिंग चर डालना पसंद करूंगा, लेकिन वेब पर खोज करते समय कोई पॉइंटर्स नहीं ढूंढ सकता।xsl में परिवर्तनीय संदर्भ कैसे करें: text element?

उदाहरण के लिए:

<xsl:variable name="var" select="node()/ref/text()"/> 
... 
<xsl:text>Some text where I want to append $var variable desperately</xsl:text> 
... 

मैं $ वर, ($ वर), {$ वर} के साथ करने की कोशिश की ...

उत्तर

11
Some text where I want to include the value of <xsl:value-of select='$var'/>. 

<xsl:text> केवल पर व्यवहार को नियंत्रित करने की जरूरत है ध्यान दें कि खाली स्थान के। अधिकांश समय, आप बस टेक्स्ट टाइप कर सकते हैं और परिणाम केवल उस तत्व को शामिल कर सकते हैं जब परिणाम आपके द्वारा अपेक्षित नहीं है - मुझे लगता है कि <xsl:text> का उपयोग करने के लिए नियमों को जानना मुझे चोट नहीं पहुंचाता है। :) (और यह जटिल नहीं है: <xsl:text> का उपयोग करें यदि अन्यथा, आपके टेक्स्ट नोड्स में केवल सफेद स्थान होगा या यदि वे अतिरिक्त गोरे स्थान को शामिल करेंगे, तो आप किसी भी अंत में टालना चाहते हैं।)

संपादित करें: ध्यान दें कि चर में व्हाइटस्पेस ' जब इस्तेमाल किया टी सुरक्षा के लिए xsl:text की जरूरत है, जो केवल XSL पार्स चरण के लिए है:

<xsl:variable name="newline"><!-- can be global --> 
<xsl:text> 
</xsl:text> 
</xsl:variable> 

<xsl:when test="starts-with(., $newline)"> 
    ... 
</xsl:when> 

Here's some text<xsl:value-of select='$newline' />with formatting. 
+0

की तरह एक मूल्य के साथ एक चर का उत्पादन करेगा हाँ मैं सफेद के लिए इसका इस्तेमाल करते हैं स्पेस (एलएफ) और वास्तव में वेरिएबल जो मैं डालना चाहता था, भी पूर्वनिर्धारित बनाने की जगह है: डी तो वर्कअराउंड ' 'के साथ बनाया जा सकता है लेकिन' ' तत्व के अंदर नहीं है क्योंकि इसकी अनुमति नहीं है। मैं यह देखने के लिए इंतजार करूंगा कि यह वास्तव में अन्य माध्यमों से संभव नहीं है, और फिर मैं आपके उत्तर को सही के रूप में चिह्नित करूंगा। धन्यवाद। – theta

+0

@theta: क्या आप कह रहे हैं कि '' तत्व के अंदर 'xxl: value-of>' की अनुमति नहीं है? वाह तुम सही हो मैं भूल गया था। – LarsH

4

xsl:text केवल उत्पादन तय पाठ करने के लिए प्रयोग किया जाता है, और यह नेस्ट निर्देश नहीं हो सकते। परिवर्तनीय पाठ आउटपुट के लिए निर्देश xsl:value-of है।

<xsl:value-of select="concat(
    'Some text where I want to append ', 
    $var, 
    ' variable desperately')" /> 

हालांकि यह थोड़ा बदसूरत है, यह आप अपने पाठ और चर के पाठ के बीच सफेद स्थान का पूरा नियंत्रण देता है:

6

यहाँ एक और तरीका है।

+0

यह वास्तविक जवाब है। – Andrew

0

मैं तार के साथ एक चर और पर यह

<xsl:variable name="imgsrc">http://mirrors.creativecommons.org/presskit/buttons/<xsl:value-of select='$iconSize' />/<xsl:value-of select="substring-before($licenceTypeAndText, '|')" /></xsl:variable> 

एक और चर बनाने के लिए कुछ इस तरह से किया था और यह इस

http://mirrors.creativecommons.org/presskit/buttons/80x15/png/by.png 
संबंधित मुद्दे