从 XSLT 样式表调用 JavaScript (转载 作者Nicholas Chase )
来源:互联网 发布:java租车系统 编辑:程序博客网 时间:2024/05/04 08:49
http://www-900.ibm.com/developerWorks/cn/xml/tips/x-tipxsltjs/index.shtml
样本文档
|
创建组件
使用扩展元素或函数的第一步是定义要执行的代码。这涉及为代码定义新的名称空间及容器:
|
表面上,这是一个添加了两个新名称空间的典型样式表。第一个名称空间的前缀是 lxslt
,告诉处理器哪个元素定义了新功能。第二个名称空间的前缀是 result
,表明对新功能的一次调用。最后,extension-element-prefixes
属性让处理器知道哪个元素作为正常流的一部分不该被转换。(如同我们将看到的一样,它们仍然会返回一个值作为输出。)
组件本身指定从 result
名称空间前缀调用其内部的所有代码。它也让处理器知道哪些函数将从扩展元素调用,以及哪些函数将从扩展函数调用。脚本元素描述函数本身。
在这个例子中,我们从一个函数开始,该函数获取一个参数并将它与 1 到 100 间的随机数进行比较,返回一个表示结果的字符串。
扩展函数
在 XSLT 样式表中,扩展函数实际扩展 XPath,因此,您可以像使用内置函数(如 translate()
或 round()
)一样使用它们。
|
本示例将当前节点(guess
)的字符串值传递给 getResult()
函数。名称空间让处理器知道触发结果组件中的函数。
使用元素
扩展元素比函数要复杂一点。我们不希望扩展元素简单地返回一个值(虽然它们可以这样做),而希望它们在样式表处理过程中的特定“时刻”执行某个特定的操作。也不希望获得一个随机的参数列表(因为扩展函数也可以),扩展元素背后的代码含有两个良好定义的参数。
rules
元素触发 rules()
函数的处理。该函数将 rules
元素本身(elem
)作为其参数之一,允许您检索它拥有的任何定制属性的值。
使用处理器上下文
扩展元素最强大的方面可能是通过 XSL 处理器上下文参数访问源文档本身的能力。
|
rules
函数的第一个参数是 org.apache.xalan.extensions.XSLProcessorContext
对象形式的处理器上下文。这允许您检索代表上下文节点、整个源树、样式表以及当前执行转换的转换程序的对象。访问上下文节点是最常见的。一旦由 getContextNode()
方法返回,这就是一个可以使用典型 DOM 操作的典型 XML 节点。
- 请参考 W3C 的 XSLT 建议书。
- 下载 Apache 的 Xalan-Java 2。
- 下载 js.jar 文件。
- 在 developerWorks XML 专区上找到更多 XML 参考资料。
- IBM WebSphere Studio Application Developer 是一个易于使用的集成开发环境,用于构建、测试并部署 Java Server Pages、servlet 和与 XML 相关的应用程序及网站。
- 从 XSLT 样式表调用 JavaScript (转载 作者Nicholas Chase )
- 从 XSLT 样式表调用 JavaScript (转载 作者Nicholas Chase )
- 对话《JavaScript高级程序设计》作者 Nicholas C. Zakas(中文版)
- 对话《JavaScript高级程序设计》作者 Nicholas C. Zakas
- 调用样式表(转载)
- Nicholas C. Zakas(javascript高级程序设计作者)如何面试前端工程师
- javascript 调用 样式表 样式名称
- Javascript轻松实现调用xslt解析xml
- XSLT中引入外部CSS样式和调用js
- javascript调用css样式表方法
- Javascript动态调用css样式表
- 使用 XSLT 样式表转换 XML 数据
- XSLT--可扩展样式表转换语言
- 如何让xslt样式表接受参数
- 深入XSLT第三章 --- 样式表结构
- 深入XSLT第六章--- 联合样式表
- JavaScript调用xslt转化xml实现多浏览器支持
- 深入浅出MFC学习笔记--转载从CSDN,作者ITer
- 第一次写blog,做个测试,大家不要进来看
- 超级ASP大分页_我的类容我做主
- 用javascript操作xml-->Web设计中如何使用XML数据源对象(转载)
- 持续集成
- D3DXColorAdjustSaturation 函数
- 从 XSLT 样式表调用 JavaScript (转载 作者Nicholas Chase )
- 正则表达式心得
- 哪位高手帮我看看这段程序,为什么输出的是错误的??
- 使用jdom操作xml数据,生成含Jtree的applet(转载 Jagie 原创 )
- 一个 C# 版的冒泡排序法
- 又是一年中秋到
- 每日构建(daily build)是你的朋友
- 多思考,实事求是,克服跳跃思维
- DNS服务器快速指南