XPath表达式fn:max()无法识别

时间:2018-07-23 21:32:48

标签: xml xslt xpath xslt-2.0 xsl-fo

有人可以告诉我为什么下面对fn:max的使用不起作用吗?

XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<a>
<b>1</b>
<b>2</b>
<b>3</b>
</a>

XSLT样式表:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
       <p><xsl:value-of select="count(a/b)"/></p>
       <p><xsl:value-of select="max(a/b)"/></p>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

count()的调用返回正确的结果,但是即使Apache says that FOP supports it,我使用的每个XSLT引擎(即Firefox和Apache FOP)也会拒绝对max()的调用。 / p>

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

因为max()需要XSLT / XPath 2.0,并且您的处理器仅支持XSLT / XPath 1.0:

  • Firefox(和所有浏览器)仅支持XSLT 1.0。
  • Apache FOP不是XSLT处理器;这是XSL-FO处理器。您 可能会通过XSLT 1.0或2.0生成XSL-FO,但是您引用的表 列出了您可能包含在XSL-FO中的功能,而不是功能 您可以将其包含在XSLT中。

请注意,您的XSLT正在生成HTML,而不是XSL-FO。

另请参见