XSLT函数以及如何访问函数中的逻辑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSLT函数以及如何访问函数中的逻辑相关的知识,希望对你有一定的参考价值。
我是XSLT的新手,并试图理解功能。我从另一个开发人员那里得到了一个XSLT,并试图理解转换
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:CMQueryHelper="urn:CMQueryHelper" xmlns:ExternalReference="urn:ExternalReference" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" exclude-result-prefixes="xsl xsi msxsl CMQueryHelper ExternalReference">
<xsl:output omit-xml-declaration="yes" />
<xsl:output method="xml" />
<xsl:template match="/">
<xsl:variable name="IncidentLocationOrgUnitID" select="CMQueryHelper:GetOrgChartInheritedNodeAttribute($CNode/Incident/Location, 'OrgUnitID')" />
</xsl:template>
</xsl:stylesheet>
任何人都可以解释这里正在做什么以及如何访问urn:CMQueryHelper&GetOrgChartInheritedNodeAttribute函数里面写的是什么逻辑?
xmlns:CMQueryHelper="urn:CMQueryHelper" ??xmlns:ExternalReference="urn:ExternalReference" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" exclude-result-prefixes="xsl xsi msxsl CMQueryHelper ExternalReference"
答案
这是一个非常奇特的XSLT样式表。它的唯一作用是调用外部函数CMQueryHelper:GetOrgChartInheritedNodeAttribute()
,我们不知道从提供的源查看该函数可能是什么。允许XSLT样式表调用外部函数,但这样做的机制完全取决于您使用的XSLT处理器。通常,函数名称的名称空间URI给出了线索,但在这种情况下不是。样式表声明Microsoft msxsl命名空间的事实也可能是一个线索,但由于它不使用该命名空间,因此这可能只是冗余样板。
请注意,给定此样式表的某些XSLT处理器将不执行任何操作。 stylesheeet所做的就是声明和初始化一个变量,并且由于从不使用变量的值,优化器完全有能力决定评估变量没有意义。
以上是关于XSLT函数以及如何访问函数中的逻辑的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情