"ABC"不是有效的 XSLT 或 XPath 函数



我正在尝试转换这个xsl语句,因为在windows server 2008上selectSingleNode是不支持的,我想在WS2008上以更支持的方式编写if语句。

所以使用下面的代码,我得到以下错误:

"ABC"不是有效的XSLT或XPath函数

当前要转换的代码:

  <xsl:if expr='ContractAddress(selectSingleNode("AddressNo").text,selectSingleNode("/Object/Contract/ConAddrNo").text)'>...</xsl:if>

所以请帮助如何转换上面的代码,我使用以下命名空间:

<xsl:stylesheet version="1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" xmlns:msxsl = "urn:schemas-microsoft-com:xslt" xmlns:vbs = "urn:schemas-sqlxml-org:vbs" xml:space="preserve">

XML示例:

<Address>
  <ConAddrNo>123</ConAddrNo>
</Address> ... <Contract>
  <AddressNo>123</AddressNo>
</Contract>

当前XSLT:

<xsl:if expr='ContractAddress(selectSingleNode("AddressNo").text, selectSingleNode("/Object/Contract/ConAddrNo").text)'>
  <xsl:eval> FormatAddress(selectSingleNode("Line1").text, selectSingleNode("Line2").text, selectSingleNode("Line3").text, selectSingleNode("Line4").text, selectSingleNode("PostalCode").text) </xsl:eval>
</xsl:if>

带有@expr属性的xsl:if和xsl:eval是来自1998年XSLT成为W3C规范之前过时的Microsoft XSLT方言的指令。现在已经很少见到它了,因为微软在大约一年后用一个一致的XSLT实现来遵循它。

该方言有时被称为WD- XSL (WD代表工作草案),以它使用的名称空间命名,尽管微软自己倾向于简单地称之为"XSL"(与"XSLT"不同)。

我怀疑你会找到一个对WD-xsl有足够信心的人来理解你的代码并翻译它。

相关内容

  • 没有找到相关文章

最新更新