在 XSL 中使用 Javascript 时出现错误
我有一个 XML 文档,并且正在使用 XSL 创建另一个 XML。我需要检查一些特定条件,为此我想在 XSL 中使用 Javascript。然而我尝试了一下,并没有得到想要的结果。由于我无法经常更改 XSL 变量,因此我尝试使用 Javascript。
XSL-
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:es="http://ucmservice"
version="1.0" xmlns="http://filenet.com/namespaces/wcm/apps/1.0" xmlns:java="http://xml.apache.org/xalan/java" xmlns:js="urn:custom-javascript" xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:totalSys="TotalSystem" extension-element-prefixes="totalSys">
<lxslt:component prefix="totalSys" functions="checkFirstProp">
<lxslt:script lang="javascript">
var firstPropVal = "";
var secondPropVal = "";
var completedFirstPropVal= new Array();
var completedSecondPropVal= new Array();
var firstDecisionFlag = 0;
function checkFirstProp(xmlValue)
{
firstDecisionFlag = 0;
if(firstPropVal.length == 0)
{
firstPropVal = xmlValue;
firstDecisionFlag = 1;
}
else
{
if(firstPropVal != xmlValue)
{
firstPropVal = xmlValue;
firstDecisionFlag = 2;
}
}
return firstDecisionFlag;
}
</lxslt:script>
</lxslt:component>
<xsl:template match="/">
<xsl:apply-templates select="XMLTag"/>
</xsl:template>
<xsl:template match="XMLTag">
<xsl:variable name="firstPropDecisionFlag">
<xsl:value-of select="totalSys:checkFirstProp(param)"/>
</xsl:variable>
<xsl:if test="$firstPropDecisionFlag=2">
{
task
}
</xsl:if>
</xsl:template>
bvk</xsl:stylesheet>
这给了我一条错误消息-
[7/20/10 16:41:47:106 IST] 0000002e 系统错误R org.apache.xalan.extensions.ObjectFactory$ConfigurationError: 提供者
org.apache.bsf.BSFManager
未找到
请指教,我哪里出错了?
I've an XML document and I am creating another XML using XSL. I need to check some specific conditions and for that I want to use Javascript in my XSL. I tried it, however, couldn't get the desired result. As I could not change the XSL variables frequiently so i am trying to use Javascript.
XSL-
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:es="http://ucmservice"
version="1.0" xmlns="http://filenet.com/namespaces/wcm/apps/1.0" xmlns:java="http://xml.apache.org/xalan/java" xmlns:js="urn:custom-javascript" xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:totalSys="TotalSystem" extension-element-prefixes="totalSys">
<lxslt:component prefix="totalSys" functions="checkFirstProp">
<lxslt:script lang="javascript">
var firstPropVal = "";
var secondPropVal = "";
var completedFirstPropVal= new Array();
var completedSecondPropVal= new Array();
var firstDecisionFlag = 0;
function checkFirstProp(xmlValue)
{
firstDecisionFlag = 0;
if(firstPropVal.length == 0)
{
firstPropVal = xmlValue;
firstDecisionFlag = 1;
}
else
{
if(firstPropVal != xmlValue)
{
firstPropVal = xmlValue;
firstDecisionFlag = 2;
}
}
return firstDecisionFlag;
}
</lxslt:script>
</lxslt:component>
<xsl:template match="/">
<xsl:apply-templates select="XMLTag"/>
</xsl:template>
<xsl:template match="XMLTag">
<xsl:variable name="firstPropDecisionFlag">
<xsl:value-of select="totalSys:checkFirstProp(param)"/>
</xsl:variable>
<xsl:if test="$firstPropDecisionFlag=2">
{
task
}
</xsl:if>
</xsl:template>
bvk</xsl:stylesheet>
this gave me an error message-
[7/20/10 16:41:47:106 IST] 0000002e
SystemErr Rorg.apache.xalan.extensions.ObjectFactory$ConfigurationError
:
Providerorg.apache.bsf.BSFManager
not found
Please advise, where am i going wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试将 javascript 代码包装在
CDATA
部分中。Try wrapping the javascript code in a
CDATA
section.该错误表明您的类路径中需要 Apache Bean 脚本框架。您可以在此处获取它。
The error says that you need the Apache Bean Scripting Framework in your classpath. You can get it here.