2010-05-27 16 views
9

मेरे पास निम्न <a> टैग है:एक्सएसएल - एक विशेषता के लिए आउटपुट से बचने के लिए कैसे अक्षम करें?

<a href="http://myserver/_forms?url={@FileRef}&amp;id=5">...</a> 

फ़ाइलों में से एक को "File's got apostrophe.xml" कहा जाता है। एक्सएसएल का आउटपुट है:

<a href="http://myserver/_forms?url=/blah/File&amp;#39;s got apostrophe.xml&id=5">...</a> 

समस्या यह है कि एस्ट्रोफ़ेफ़ HTML-escaped (दो बार?) Xzx31 में है, जो लिंक को तोड़ देता है।

मैंने <xsl:attribute>

<a> 
    <xsl:attribute name="href"> 
    <xsl:value-of select="concat('http://myserver/_forms?url=', @FileRef, '&amp;id=5')" 
     disable-output-escaping="yes" /> 
    </xsl:attribute> 
</a> 

आउटपुटिंग <xsl:value-of select="@FileRef" disable-output-escaping="yes" /> अच्छी तरह से काम करता है - अनचाहे मूल्य पृष्ठ पर मुद्रित किया गया है।

स्ट्रिंग से बचने के बिना मैं विशेषता कैसे सेट कर सकता हूं?

+0

क्या आपने स्ट्रिंग को एक चर में संग्रहीत करने और इसे आउटपुट करने का प्रयास किया है? –

+0

क्या आपने विभिन्न xslt-processors/ब्राउज़र को आजमाया है? – user306708

+0

@ गैबी - मैंने कोशिश नहीं की, मैंने इसके बारे में सोचा, लेकिन यह समझ में नहीं आया। यह '@ FileRef' फ़ील्ड को आउटपुट करने से बेहतर प्रतीत नहीं होता था। क्या आप पूरे '' टैग का जिक्र कर रहे हैं, जैसा कि tpeczek के उत्तर के समान है? – Kobi

उत्तर

17

आप उत्पन्न कर सकते हैं अपने < पाठ के रूप में एक >:

<xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text> 
<xsl:value-of select="concat('http://myserver/_forms?url=', @FileRef, '&amp;id=5')" disable-output-escaping="yes" /> 
<xsl:text disable-output-escaping="yes">" &gt;/a&lt;</xsl:text> 
+0

यह एक बहुत अच्छा विचार है, ऐसा लगता है कि यह काम करने जा रहा है। जब मैं काम पर वापस आऊंगा तो मैं रविवार को जांच करूंगा। धन्यवाद! – Kobi

+4

यह काम करता है, हालांकि परिणाम असाधारण बदसूरत है। उस अगले डेवलपर के लिए कितना शर्म की बात है। धन्यवाद! – Kobi

5

मैं जानता हूँ कि मैं इस पर देर से एक सा हूँ, लेकिन मुझे लगता है कि विशेषता टैग तरीका करने के लिए, आप बस नहीं करना चाहते है concat ...

<a> 
    <xsl:attribute name="href"> 
    http://myserver/_forms?url=<xsl:value-of select="@FileRef" disable-output-escaping="yes" />&amp;id=5 
    </xsl:attribute> 
</a> 
+0

दिलचस्प विचार। मैं उसमें देख लूंगा, धन्यवाद। – Kobi

+0

PHP के एक्सएसएलटी प्रोसेसर के साथ बहुत अच्छा काम किया, धन्यवाद! –

+0

मुझे यह समस्या थी: http://stackoverflow.com/questions/7887016/disable-output-escaping-not-working-for-attribute-in-xlst – Peter

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

  • कोई संबंधित समस्या नहीं^_^