मैं XSL के लिए एक यथोचित जटिल फोन है: लागू-टेम्पलेट्स:एक्सएसएल चर का उपयोग xsl में कैसे करें: लागू-टेम्पलेट्स?
<xsl:apply-templates select="columnval[@id
and not(@id='_Name_')
and not(@id='Group')
and not(@id='_Count_')]"/>
अभिव्यक्ति इस तरह अन्य स्थानों में पुन: उपयोग किया जाता है:
<xsl:apply-templates select="someothernode[@id
and not(@id='_Name_')
and not(@id='Group')
and not(@id='_Count_')]"/>
मैं इसे किसी भी तरह सामान्यीकरण करने के लिए चाहते हैं, तो मैं परिभाषित कर सकते हैं यह एक बार और इसे कहीं और पुन: उपयोग करें। हालांकि, यह काम नहीं कर रहा है:
<xsl:variable name="x">@id and not(@id='_Name_') and not(@id='Group') and not(@id='_Count_')</xsl:variable>
<xsl:apply-templates select="columnval[$x]"/>
<xsl:apply-templates select="someothernode[$x]"/>
क्या ऐसा करने का एक बेहतर/अलग तरीका है? मैं चाहता हूं कि एक्सएसएल में एकाधिक अलग-अलग कॉलों में xpath अभिव्यक्ति का पुन: उपयोग करना है: लागू-टेम्पलेट्स (जिनमें से कुछ अलग-अलग बच्चों से चयन करते हैं)।
यह क्लाइंट एप्लिकेशन में उपयोग किया जा रहा है, इसलिए मैं किसी भी एक्सटेंशन का उपयोग नहीं कर सकता या दुर्भाग्यवश XSLT 2 पर स्विच नहीं कर सकता। :(
धन्यवाद।
अच्छा प्रश्न है। दो संभावित समाधानों (एक्सएसएलटी 1.0 और एक्सएसएलटी 2.0) के वर्णन के लिए मेरा उत्तर देखें और उच्च-आदेश कार्यों का उपयोग करके अधिक शक्तिशाली, समाधान का संकेत दें। –