使用xpath选择使用xslt调用函数
如何在xslt中调用javascript/c函数来传递xpath选择值。 以下是我如何使用手动输入的参数调用函数:使用xpath选择使用xslt调用函数,xslt,msxsl,Xslt,Msxsl,如何在xslt中调用javascript/c函数来传递xpath选择值。 以下是我如何使用手动输入的参数调用函数: <xsl:value-of select="cs:my('some text')"/> 下面是一个来自的示例,这对于MSXML 6应该是相同的,对于.NEt的XslCompiledTransform非常类似-对于后者 示例此示例使用命名空间定义脚本块 包含一个名为xml的函数的用户前缀,该函数采用 节点列表作为参数。稍后,在 从的select属性调用用户命名空间 XM
<xsl:value-of select="cs:my('some text')"/>
下面是一个来自的示例,这对于MSXML 6应该是相同的,对于.NEt的XslCompiledTransform非常类似-对于后者
示例此示例使用命名空间定义脚本块
包含一个名为xml的函数的用户前缀,该函数采用
节点列表作为参数。稍后,在
从的select属性调用用户命名空间
XML文件customers.XML
XSLT文件script.xsl
格式化输出
您使用哪个XSLT处理器?使用C时,它可以是System.Xml.Xsl.xslcomiledTransform,这里有文档记录:。基本上,XSLT/XPath节点集由C函数作为XPathNodeIterator接收。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="script.xsl" ?>
<customers>
<customer>
<name>John Smith</name>
<address>123 Elm St.</address>
<phone>(123) 456-7890</phone>
</customer>
<customer>
<name>Mary Jones</name>
<address>456 Oak Ave.</address>
<phone>(156) 789-0123</phone>
</customer>
</customers>
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace">
<msxsl:script language="JScript" implements-prefix="user">
function xml(nodelist) {
return nodelist.nextNode().xml;
}
</msxsl:script>
<xsl:template match="/">
<xsl:value-of select="user:xml(.)"/>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-16"?><?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="script.xsl" ?>
<customers>
<customer>
<name>John Smith</name>
<address>123 Elm St.</address>
<phone>(123) 456-7890</phone>
</customer>
<customer>
<name>Mary Jones</name>
<address>456 Oak Ave.</address>
<phone>(156) 789-0123</phone>
</customer>
</customers>