2012-11-28 11 views
6

मैं एक मानदंड के अंदर एक पैरामीटर या वैरिएबल के मान का उपयोग नोड नाम के रूप में करने का प्रयास कर रहा हूं लेकिन अब तक असफल रहा है ..पैरामीटर या परिवर्तनीय मानों का उपयोग नोड नाम के रूप में कैसे करें?

तो मेरा एक्सएमएल नीचे जैसा है।

<Data> 
<Name>John Smith</Name> 
<Date>28112012</Date> 
<Phone>iphone</Phone> 
<Car>BMW</Car> 
</Data> 

और मेरा अपूर्ण xslt नीचे जैसा दिखता है।

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="2.0" 
    exclude-result-prefixes="#all"> 

<xsl:param name="nodename" select="'Name'"/> 

<xsl:template match="/Data"> 

     <Output> 
     <xsl:value-of select="{$nodename}"/> 
     </Output>  
</xsl:template> 

</xsl:stylesheet> 

आदर्श रूप में मैं बाहर

<Output>John Smith</Output> 

होने के लिए डाल चाहते हैं वहाँ किसी भी तरह से मैं इस XSLT का उपयोग कर सकते है? मैं उपयोगकर्ताओं की पसंद के आधार पर उचित नोड का चयन करने में सक्षम होना चाहता हूं।

धन्यवाद

एसके

उत्तर

4

एक जंगली अनुमान है, मुझे पता है कि यह काम करता है:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" exclude-result-prefixes="#all"> 

<xsl:param name="nodename" select="'Name'"/> 
<xsl:template match="/Data"> 
    <Output> 
     <xsl:value-of select="//*[name()=$nodename]" /> 
    </Output>  
</xsl:template> 

</xsl:stylesheet> 
+0

तु धन्यवाद, मैं सिर्फ यह अपने आप के रूप में अच्छी समझ से बाहर! – user1859463

+0

@ user1859463 मुझे लगता है कि यह काम करता है। एक्सडी – xiaoyi

संबंधित मुद्दे