Я хочу использовать xslt для вывода математического выражения из ввода Mathml. В моем преобразовании должна быть какая-то ошибка. Я не знаю, как это исправить. Не могли бы вы помочь мне? Должен ли я использовать параметр или переменную для управления им? XML:
<?xml version="1.0" encoding="UTF-8"?>
<math>
<apply>
<eq/>
<apply>
<plus/>
<apply>
<power/>
<ci>x</ci>
<cn>2</cn>
</apply>
<apply>
<times/>
<cn>2</cn>
<ci>x</ci>
</apply>
<cn>2</cn>
</apply>
<cn>0</cn>
</apply>
</math>
Это мой xsl:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:apply-templates/>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="math">
<xsl:apply-templates select="apply"/>
</xsl:template>
<xsl:template match="apply">
<xsl:sequence select="name(element()[1]),'('"/>
<xsl:apply-templates select="apply">
</xsl:apply-templates>
<xsl:sequence select="element()[2],','"/>
<xsl:sequence select="element()[3],')',','"/>
</xsl:template>
</xsl:stylesheet>
Результат должен быть:
eq(plus(power(x,2),times(2,x),2),0)
1.0
был в первом редактировании @empo, не предоставленном исходным сообщением @ZAWD. :) - person sarnold   schedule 22.05.2011