मेरी एक्सएसएलटी स्प्रेडशीट के भीतर, मुझे एक एक्सएसएल: वैरिएबल को एक मान या दूसरे के साथ एक्सएमएल नोड के मान के आधार पर परिभाषित करने की आवश्यकता है। नीचे दिया गया कोड दिखाता है कि मैं क्या करने की कोशिश कर रहा हूं। मैं इस तरह से कई चर परिभाषित करना चाहता हूँ।एक्सएसएलटी वैरिएबल को गतिशील रूप से एक्सएसएल का उपयोग करके परिभाषित करना:
एक प्रमुख मुद्दा यह है कि प्रत्येक आइटम के नोड मान के आधार पर परिवर्तनीय मान चुनने के लिए, चयन xsl: foreach के भीतर किया जाना चाहिए, और जब भी मैं xsl के भीतर एक चर परिभाषित करने का प्रयास करता हूं: foreach यह दिखाता है त्रुटि।
<xsl:for-each select="WORKS/item">
<xsl:variable name="rate1">
<xsl:choose>
<xsl:when test="rental='new'">
<xsl:value-of select="'.15'" />
</xsl:when>
<xsl:when test="rental='used'">
<xsl:value-of select="'.30'" />
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="rent1" select="{$rate1}">
कारण मैं चर मान बदलने के माध्यम से यह पूरा करने के लिए करना चाहते हैं, क्योंकि वे चर तो एक गणित समारोह है, जो एक नोड मूल्य (कीमत) है जो हर के साथ अलग होगा द्वारा चर गुणा में किया जाता है । यहां बताया गया है कि एक बार परिभाषित चर, का उपयोग किया जाएगा। बहुत धन्यवाद।
<div class="rental-period">1-4 Days:</div>
<div class="rental-price"><em>$ <xsl:value-of select='format-number((100*(price * $rent1) div 100), "###.00")'/></em></div>
<div class="rental-period">5-7 Days:</div>
<div class="rental-price"><em>$ <xsl:value-of select='format-number((100*(price * $rent2) div 100), "###.00")'/></em></div>
<div class="rental-period">8-14 Days:</div>
<div class="rental-price"><em>$ <xsl:value-of select='format-number((100*(price * $rent3) div 100), "###.00")'/></em></div>
अद्यतन: ठीक है। मैंने डार्क फाल्कन द्वारा नीचे दिए गए समाधान का प्रयास किया है, लेकिन यह मुझे "त्रुटि खोलने और समाप्त करने के लिए टैग मिस्चैच" त्रुटि दे रहा है। पहले की तरह एक ही त्रुटि। ऐसा लगता है कि xsl नहीं है: मेरे पास यह कहां है, क्योंकि उन पंक्ति संख्याएं हैं जहां त्रुटियां आ रही हैं।
<xsl:template name="showPrice">
<xsl:param name="rentalRate"/>
<div class="rental-price"><em>$ <xsl:value-of select='format-number((100*(price * $rentalRate) div 100), "###.00")'/></em></div>
</xsl:template>
<xsl:template match="/">
<xsl:for-each select="WORKS/item">
<div class="rental-info">
<xsl:choose>
<xsl:when test="rental='new'">
<xsl:call-template name="showPrice">
<xsl:with-param name="rentalRate" select="'.15'">
</xsl:call-template>
</xsl:when>
<xsl:when test="rental='used'">
<xsl:call-template name="showPrice">
<xsl:with-param name="rentalRate" select="'.30'">
</xsl:call-template>
</xsl:when>
</xsl:choose>
</div>
</xsl:for-each>
</xsl:template>
मैं के रूप में सुझाव कॉल-टेम्पलेट समारोह उपयोग करने की कोशिश, लेकिन मैं एक ही त्रुटियों हो रही है। मैंने ऊपर अपना प्रश्न अपडेट कर लिया है। धन्यवाद! – Alan
क्षमा करें, साथ-param को एक खाली टैग होना चाहिए। अभी इसका कोई बंद टैग नहीं है। –