Xml 为什么减法和除法在XSLT中给我NaN?
所以,我试着做一个符号导数计算器,它只需要一个小故障。它为我提供了这个XMLXml 为什么减法和除法在XSLT中给我NaN?,xml,xslt,xslt-1.0,nan,Xml,Xslt,Xslt 1.0,Nan,所以,我试着做一个符号导数计算器,它只需要一个小故障。它为我提供了这个XML <?xml version="1.0"?> <sum> <mono> <arg>3</arg> <var>x</var> <exp>2</exp> </mono> </sum> 3. x 2. 这个样式表给出了数字在
<?xml version="1.0"?>
<sum>
<mono>
<arg>3</arg>
<var>x</var>
<exp>2</exp>
</mono>
</sum>
3.
x
2.
这个样式表给出了数字在导数中应有的行为
<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>
X
您的主模板与根元素匹配:
<xsl:template match = "/">
然后您的NaN问题将消失,因为arg
和exp
元素现在实际上是当前mono
元素的子元素,而它们以前不是/
元素的子元素
以下是您的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>
X
以下是XML输出,不包括请求的NAN:
<?xml version="1.0" encoding="UTF-8"?>
<mono>
<arg>1.5</arg>
<var>X</var>
<exp>1</exp>
</mono>
1.5
X
1.
<?xml version="1.0" encoding="UTF-8"?>
<mono>
<arg>1.5</arg>
<var>X</var>
<exp>1</exp>
</mono>