2010-06-13 11 views
5

# 3 ग संकलित का उपयोग बदल देती निम्नलिखित ठीक काम करने के लिए लगता है ...xpath में मैं अधिक से अधिक प्रतीक> लेकिन नहीं से कम क्यों उपयोग कर सकते हैं <

<xsl:choose> 
    <xsl:when test="$valA > $valB"> 
     <xsl:value-of select="$maxUnder" /> 
    </xsl:when> 
    <xsl:when test="$valA &lt; $valC"> 
     <xsl:value-of select="$maxOver" /> 
    </xsl:when> 
</xsl:choose> 

लेकिन अगर मैं एक < का उपयोग की हिम्मत &lt; के स्थान पर यह एक त्रुटि ...

<xsl:choose> 
    <xsl:when test="$valA > $valB"> 
     <xsl:value-of select="$maxUnder" /> 
    </xsl:when> 
    <xsl:when test="$valA < $valC"> 
     <xsl:value-of select="$maxOver" /> 
    </xsl:when> 
</xsl:choose> 

System.Xml.XmlException देता है: '<', हेक्साडेसिमल मान 0x3C, गलत विशेषता चरित्र है।

तो > ठीक क्यों है और < क्यों नहीं है?

उत्तर

11

क्योंकि > एक्सएमएल में आरक्षित चरित्र नहीं है, लेकिन < है।

section 2.4 of the XML 1.0 spec (5th edition) से

:

एम्परसेंड वर्णों (&) और बाईं कोण कोष्ठक (<) उनके शाब्दिक रूप में दिखाई देना चाहिए नहीं, को छोड़कर जब मार्कअप डिलीमीटर के रूप में इस्तेमाल किया है, या एक टिप्पणी के भीतर , एक प्रसंस्करण निर्देश, या एक सीडीएटीए अनुभाग। यदि उन्हें अन्य जगहों की आवश्यकता है, तो उन्हें या तो संख्यात्मक वर्ण संदर्भ या स्ट्रिंग्स "&amp;" और "&lt;" क्रमशः का उपयोग करके बच जाना चाहिए। सही कोण कोष्ठक (>) स्ट्रिंग "&gt;" का उपयोग कर प्रस्तुत किया जा सकता है, और, संगतता के लिए, या तो "&gt;" या एक केरेक्टर सन्दर्भ का उपयोग फरार हो जाना चाहिए जब यह स्ट्रिंग "]]>" में में प्रकट होता है सामग्री, जब वह स्ट्रिंग सीडीएटीए अनुभाग के अंत को चिह्नित नहीं करती है।

+0

[सही कोण कोष्ठक (>) स्ट्रिंग > का उपयोग कर प्रस्तुत किया जा सकता है, और, संगतता के लिए, या तो > या एक केरेक्टर सन्दर्भ का उपयोग फरार हो जाना चाहिए] इसका मतलब यह है कि भले ही मैं इसे सीधे उपयोग कर सकते हैं मैं shouldn 'टी? खुश होती है। टी – gingerbreadboy

+0

हां, इसका मतलब यही है। –

+1

@runrunraygun: नहीं। वास्तव में मैं हमेशा '>' का उपयोग करके उपयोग और अनुशंसा करता हूं। यह आपके कोड को > ' –

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