XPath 表达式 fn:max() 无法识别
XPath expression fn:max() not recognized
有人能告诉我为什么下面使用 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()
returns 的调用得到了正确的结果,但是我使用的每个 XSLT 引擎(即 Firefox 和 Apache FOP)都拒绝对 max()
的调用,即使 Apache says that FOP supports it.
我做错了什么?
因为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,但是您引用的 table
列出您可能包含在 XSL-FO 中的函数,而不是函数
您可以将其包含在 XSLT 中。
请注意,您的 XSLT 正在生成 HTML,而不是 XSL-FO。
另见
- How to find the max attribute from an XML document using Xpath 1.0
有人能告诉我为什么下面使用 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()
returns 的调用得到了正确的结果,但是我使用的每个 XSLT 引擎(即 Firefox 和 Apache FOP)都拒绝对 max()
的调用,即使 Apache says that FOP supports it.
我做错了什么?
因为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,但是您引用的 table 列出您可能包含在 XSL-FO 中的函数,而不是函数 您可以将其包含在 XSLT 中。
请注意,您的 XSLT 正在生成 HTML,而不是 XSL-FO。
另见
- How to find the max attribute from an XML document using Xpath 1.0