首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以平台无关的方式使用节点集函数?

如何以平台无关的方式使用节点集函数?
EN

Stack Overflow用户
提问于 2008-09-18 12:29:21
回答 5查看 5.3K关注 0票数 11

在这个文件中,我使用了在MSXML和xsltproc的不同名称空间中声明的节点集函数(分别为“urn:schemas-microsoft-com:xslt”和"http://exslt.org/common“)。

EN

回答 5

Stack Overflow用户

发布于 2008-09-18 13:26:48

您可以使用function-available()函数来确定应该使用哪个函数:

代码语言:javascript
运行
复制
<xsl:choose>
  <xsl:when test="function-available('exslt:node-set')">
    <xsl:apply-templates select="exslt:node-set($nodelist)" />
  </xsl:when>
  <xsl:when test="function-available('msxsl:node-set')">
    <xsl:apply-templates select="msxsl:node-set($nodelist)" />
  </xsl:when>
  <!-- etc -->
</xsl:choose>

您甚至可以将此逻辑包装在命名模板中,并使用节点集作为参数来调用它。

票数 8
EN

Stack Overflow用户

发布于 2008-12-01 03:45:41

是的,有一个好的通用的解决方案

的函数可以实现为内联Javascript函数,因此可用于任何支持Javascript的浏览器(几乎所有主要浏览器都无一例外)。

这项技术最早是由发现的,在他将其发布到上之后,将其公之于众。在上,还有一个指向测试页面的链接,该页面显示这样实现的公共:node-set()函数是否适用于您选择的浏览器。

总结一下:

首先转到并阅读explanation.

  • Then,尝试测试页面。特别是,验证它是否可以与IE一起使用(这意味着在MSXML)

  • Finally,中使用代码。

尽情享受吧!

票数 8
EN

Stack Overflow用户

发布于 2008-09-18 21:58:35

Exslt“应该是”一组独立于平台的xslt扩展,但前提是各种xslt处理器都选择实现它们。

确实有some evidence支持exsl:node-set(),但我不确定。

在MSXML之上有一个讨论exslt的an implementationold article

否则,我认为function-available()是您的朋友:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/92076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档