2008-08-07 10 views
13

मैंने सोचा होगा कि यह Google के लिए आसान होगा, लेकिन मैं असंतुष्ट रहा हूं।नोड का चयन करने का प्रयास करते समय आप xsl में एक चर का उपयोग कैसे करते हैं?

मैं एक चर के मूल्य को एक चर (अब तक आसान) असाइन करना चाहता हूं, फिर उस चर के उपयोग के आधार पर उस चर का उपयोग करने के लिए उस चर का उपयोग करें।

उदाहरण:

<xsl:variable name="myId" select="@id" /> 
<xsl value-of select="//Root/Some/Other/Path/Where[@id='{@myId}']/@Name /> 

कि काम नहीं करता। यदि मैं वैरिएबल में मौजूद मान के साथ {@myId} को प्रतिस्थापित करता हूं तो उसे सही नोड मिल जाता है, लेकिन इसे इस तरह से सौंपना इस तरह से कुछ भी नहीं बनाता है। मुझे यकीन है कि मुझे कुछ याद आ रही है, या शायद ऐसा करने का एक अलग तरीका है।

संदर्भ यह है कि अलग-अलग शीर्ष-स्तरीय नोड्स के अंतर्गत संबंधित डेटा है जो समान आईडी मान साझा करते हैं, इसलिए मुझे अपने टेम्पलेट में संबंधित नोड्स प्राप्त करने की आवश्यकता है।

उत्तर

16

ठीक है, मैंने अंततः इसे समझ लिया। मूर्खतापूर्ण समस्या वास्तव में, मुझे बस उद्धरण और ब्रेसिज़ छोड़ने की आवश्यकता थी। उन समयों में से एक जब मैं सोचा कि मैंने पहले ही कोशिश की थी। : डी ओह, और मैंने पहले उदाहरण में @myId को गलत टाइप किया, कोड वास्तव में $ myId था।

<xsl:variable name="myId" select="@id" /> 
<xsl value-of select="//Root/Some/Other/Path/Where[@id=$myId]/@Name" /> 
+0

अभी भी बोली कि वहां नहीं होना चाहिए है। यह एक बहुत छोटा संपादन है, इसलिए मैं पाठ को बदलने के बिना भी नहीं कर सकता (न्यूनतम वर्ण सीमा)।

+0

धन्यवाद, मुझे लगता है कि यह अभी सही है। मैंने मूल रूप से अंत में बंद होने वाले डबल कोट को भी याद किया। – palehorse

4

आप एक चर का उपयोग (जो सिर्फ $ चर रहा है) के साथ भ्रमित हो गया और गुण की है, मूल्य टेम्पलेट्स, जो आपको कुछ विशेषताओं में किसी भी XPath अभिव्यक्ति डाल करने के लिए अनुमति देते हैं, जैसे लग रहे हैं

<newElement Id="{@Id}"/> 

वे जाहिर है, जोड़ा जा सकता है तो आप इस तरह के रूप में एक गुण मान खाका, में एक चर शामिल कर सकते हैं:

<newElement Id="{$myId}"/> 
संबंधित मुद्दे