为什么减法和除法在 XSLT 中给我 NaN?
Why are subtractions and divisions giving me NaN in XSLT?
所以,我正在尝试制作一个符号导数计算器,并且它可以正常工作。它给了我 NaN XML
<?xml version="1.0"?>
<sum>
<mono>
<arg>3</arg>
<var>x</var>
<exp>2</exp>
</mono>
</sum>
这个样式表为数字提供了它们在导数中应有的行为。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match = "/">
<mono>
<arg>
<xsl:value-of select="arg div exp"></xsl:value-of>
</arg>
<var>
<xsl:if test="exp > 0"/>
X
</var>
<exp>
<xsl:value-of select="exp - 1"></xsl:value-of>
</exp>
</mono>
</xsl:template>
</xsl:stylesheet>
您的主模板匹配根元素:
<xsl:template match = "/">
改为匹配 mono
个元素:
<xsl:template match = "mono">
那么你的 NaN 问题就会消失,因为 arg
和 exp
元素现在确实是当前 mono
元素的子元素,而它们不是 [= 的子元素18=] 之前的元素。
这是您的 XSLT,并进行了上述一些其他改进:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="mono">
<mono>
<arg>
<xsl:value-of select="arg div exp"></xsl:value-of>
</arg>
<var>
<xsl:if test="exp > 0">X</xsl:if>
</var>
<exp>
<xsl:value-of select="exp - 1"/>
</exp>
</mono>
</xsl:template>
</xsl:stylesheet>
这里是 XML 输出,没有 NaN,按照要求:
<?xml version="1.0" encoding="UTF-8"?>
<mono>
<arg>1.5</arg>
<var>X</var>
<exp>1</exp>
</mono>
所以,我正在尝试制作一个符号导数计算器,并且它可以正常工作。它给了我 NaN XML
<?xml version="1.0"?>
<sum>
<mono>
<arg>3</arg>
<var>x</var>
<exp>2</exp>
</mono>
</sum>
这个样式表为数字提供了它们在导数中应有的行为。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match = "/">
<mono>
<arg>
<xsl:value-of select="arg div exp"></xsl:value-of>
</arg>
<var>
<xsl:if test="exp > 0"/>
X
</var>
<exp>
<xsl:value-of select="exp - 1"></xsl:value-of>
</exp>
</mono>
</xsl:template>
</xsl:stylesheet>
您的主模板匹配根元素:
<xsl:template match = "/">
改为匹配 mono
个元素:
<xsl:template match = "mono">
那么你的 NaN 问题就会消失,因为 arg
和 exp
元素现在确实是当前 mono
元素的子元素,而它们不是 [= 的子元素18=] 之前的元素。
这是您的 XSLT,并进行了上述一些其他改进:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="mono">
<mono>
<arg>
<xsl:value-of select="arg div exp"></xsl:value-of>
</arg>
<var>
<xsl:if test="exp > 0">X</xsl:if>
</var>
<exp>
<xsl:value-of select="exp - 1"/>
</exp>
</mono>
</xsl:template>
</xsl:stylesheet>
这里是 XML 输出,没有 NaN,按照要求:
<?xml version="1.0" encoding="UTF-8"?>
<mono>
<arg>1.5</arg>
<var>X</var>
<exp>1</exp>
</mono>