Using c#3 compiled transforms the following seems to work just fine...
<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>
However if i dare use a < in place of < it gives an error...
<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: '<', hexadecimal value 0x3C, is an invalid attribute character.
So why is > ok and not < ?
Single Slash “/” – Single slash is used to create Xpath with absolute path i.e. the xpath would be created to start selection from the document node/start node.
You're always safe using > here, although some XSLT processors process the greater-than sign correctly if you use > instead. If you need to use the less-than operator ( < ), you'll have to use the < entity.
To define an XPath expression that checks if a string element is empty, you must use the operator != . This example shows how to define an XPath expression that evaluates to true when a repeating element, which is referred to as a sequence, is empty. The effective Boolean value of an empty sequence is false.
Because > isn't a reserved character in XML, but < is.
From section 2.4 of the XML 1.0 spec (5th edition):
The ampersand character (
&) and the left angle bracket (<) must not appear in their literal form, except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section. If they are needed elsewhere, they must be escaped using either numeric character references or the strings "&" and "<" respectively. The right angle bracket (>) may be represented using the string ">", and must, for compatibility, be escaped using either ">" or a character reference when it appears in the string "]]>" in content, when that string is not marking the end of a CDATA section.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With