2010-05-22 16 views
41

में एकल उद्धरण से बचें मैं नीचे xsl में $ ID चर के एकल कोट को आउटपुट करना चाहता हूं: xsl statation का मान।xslt concat function

<xsl:value-of select="concat('process[@Ref=',$ID,']')"></xsl:value-of> 

वर्तमान में यह प्रिंट

[email protected]=87799989 

कृपया मुझे पता है मैं यह कैसे प्राप्त कर सकते हैं करते हैं।

अग्रिम धन्यवाद, केशव

+0

अच्छा प्रश्न (+1)। एक पूर्ण समाधान के लिए मेरा जवाब देखें। :) –

+0

अच्छा प्रश्न (और शुक्रिया का उत्तर दिया!); यह मुझे पागल कर रहा था! – monojohnny

उत्तर

28

उपयोग &apos;?

<xsl:value-of select="concat('process[@Ref=&apos;',$ID,'&apos;]')"></xsl:value-of> 

संपादित करें: बेहतर समाधान के लिए Dimitre's answer देखें।

+0

हाय, धन्यवाद यह मेरे लिए काम किया – keshav84

+6

यह अजीब है यह काम किया; ' को शाब्दिक के बराबर डीकोड किया जाना चाहिए। शायद एक छोटी गाड़ी एक्सएसएलटी इंजन? –

+6

मेरे लिए काम नहीं करता –

34

XPath 1.0 में:

फिर, आप अपने $Q और $APOS वैरिएबल निर्धारित कर सकते (:

आप अंतर्निहित संस्थाओं &apos; और &quot;

XSLT 1.0 में उपयोग कर सकते हैं xsl:variable के शरीर में सामग्री (शाब्दिक "या शाब्दिक 'चरित्र) डालें, select अटारी में नहीं Bute)।

XPath 2.x में

बस दो आसन्न अक्षर लोप दर्ज करके एपोस्ट्रोफ़ी बचने के दो आसन्न उद्धरण दर्ज करके एक उद्धरण से बच (यह भी XSLT 2.x और XQuery 1.x का मतलब है), as defined by the XPath 2.0 language

+1

क्या आप उदाहरण प्रदान कर सकते हैं? (एक उदाहरण 1000 से अधिक शब्दों को बताता है और आपके उत्तर को शीर्ष पर धक्का देता है)। धन्यवाद –

+1

@ रिचर्डगोम्स, इसे देखें: http://stackoverflow.com/a/7617563/36305, या यह: http://stackoverflow.com/a/3453956/36305, या यह: http://stackoverflow.com/ ए/8783655/36305 –

4
<xsl:value-of 
select="concat('process[@Ref=&apos;',$ID,'&apos;]')"></xsl:value-of> 

यह मेरे लिए काम नहीं करता है। मेरे समाधान है:

<xsl:value-of select="concat(&quot;process[@Ref='&quot;,$oidConstant,&quot;'&quot;)"></xsl:value-of> 
+0

मैं उलझन में था लेकिन यह काम करता है - सादा पाठ डबल कोट में चयन कथन होता है और एन्कोडेड युगल पार्सर द्वारा खपत किया जाता है - अच्छा – Paxic

31

Dimitre के जवाब पर विस्तार करने के लिए, आप XSLT में इस समाधान का उपयोग कर सकते हैं:

<xsl:variable name="apos">'</xsl:variable> 
<xsl:value-of select="concat('process[@Ref=',$apos,$ID,$apos,']')"></xsl:value-of> 
+2

परिवर्तनीय विधि काम करता है और सबसे अधिक पढ़ने योग्य (IMHO) दिखता है। – monojohnny

+0

यह दूसरी बार है कि इस समाधान ने मुझे परीक्षण के घंटे और त्रुटि और डिबगिंग समय बर्बाद कर दिया है। – GuruM

+0

XSLT 1.0 और 2.0 में काम करने लगता है, जिसे मुझे पसंद आया क्योंकि तब मैं इसे एक common.xslt फ़ाइल में डाल सकता हूं। –

0

आसान उदाहरण

 <xsl:variable name="varTitle" select="title" /> 
<xsl:variable name="APOS">'</xsl:variable> 
<xsl:value-of select="translate($varTitle, 'any text', $APOS)"/> 

यह स्थान ले लेगा "किसी भी होगा मेरे शीर्षक में "साथ" टेक्स्ट।