xsl参数:<xsl:param name=""></xsl:param> 之类
来源:互联网 发布:上海java程序员招聘 编辑:程序博客网 时间:2024/05/10 00:48
出处:http://www.educity.cn/wenda/140984.html
xml文件:
< xml version="1.0" encoding="UTF-8" >
<messages>
<message name="msg23">Error 23: The drive is full.</message>
<message name="msg42">Error 42: The file is not found.</message>
</messages>
xsl文件:
< xml version="1.0" encoding="UTF-8" >
<xsl:stylesheet version="1.0" xmlns:xsl="">
<!-- these 2 elements effectively assign $messages = resources/en.xml/<messages>, then $messages is used in the "localized-message" template --><xsl:param name="lang">message</xsl:param>
<xsl:variable name="messages" select="document(concat('../xmlfiles/', $lang, '.xml'))/messages"/>
<xsl:template name="msg23" match="msg23">
<xsl:call-template name="localized-message">
<xsl:with-param name="msgcode">msg23</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="localized-message"> <xsl:param name="msgcode"/> <!-- show message string --> <xsl:message terminate="yes">
<xsl:value-of select="$messages/message[@name=$msgcode]"/> </xsl:message>
</xsl:template>
</xsl:stylesheet>
说明:
<xsl:param name="lang">message</xsl:param>
这一行是声明了参数名,并给定值为:"message"字符串.<xsl:variable name="messages" select="document(concat('../xmlfiles/', $lang, '.xml'))/messages"/>
这一行也是定义了参数名,与上一行不同的是它用了上一行的值:"$lang",最终得到的值为:"document(../xmlfiles/message.xml)/messages".这两个变量为全局变量。<!-- a--> <xsl:template name="msg23" match="msg23"> <xsl:call-template name="localized-message"> <xsl:with-param name="msgcode">msg23</xsl:with-param> </xsl:call-template> </xsl:template>
<!-- b --> <xsl:template name="localized-message"> <xsl:param name="msgcode"/> <!-- show message string --> <xsl:message terminate="yes"> <xsl:value-of select="$messages/message[@name=$msgcode]"/> </xsl:message> </xsl:template>
上面两部份是紧密联系的(这里将他们分为a,b部分),a部份调
用了b部份,并且对b部分的参数"msgcode"进行了传值,也就是:
<xsl:with-param name="msgcode">msg23</xsl:with-param>
;在b部份中的<xsl:param/>声明的变量为局部变量。引用了全局变量:"messages",读到这里,是不是有一种似曾相识的感觉?
html文件:
<html> <head> <script src="../js/commUtil.js"$amp;>amp;$lt;/script> <script> function parseXml() { var xslDoc = commLoad("../xsl_files/message.xsl"); var xmlDoc = commLoad("../xmlfiles/message.xml"); var showStr = xmlDoc.documentElement.transformNode(xslDoc); var divContent = document.getElementById("divContent"); divContent.innerHTML = showStr; } </script> </head> <body> <div id="divContent"$amp;>amp;$lt;/div> <input type="button" onclick="parseXml()" /> </body> </html>
js代码:
/** * @param url <xml>文档所在位置 * @return retDom xml的dom * */ function commLoad(URL){ var retDom = null; try{ retDom = new ActiveXObject('Microsoft.XMLDOM'); retDom.async = false; retDom.load(URL); }catch(e){ retDom = document.implementation.createDocument("", "", null); retDom.async = false; retDom.load(URL); } return retDom; } /** * @param xml <xml>文档 * @return retDom xml的dom * */ function commLoadXML(xml){ var retDom = null; try{ retDom = new ActiveXObject('Microsoft.XMLDOM'); retDom.async = false; retDom.loadXML(xml); }catch(e){ var oParser = new DOMParser(); retDom = oParser.parseFromString(xml,"text/xml"); } return retDom; }
细心的人可以从html文件(代码)里得到三个folder。只要按照目录来做,并把html文件的绝对路径放到浏览器里(用浏览器访问该html文件)你将会看到这样的结果:
引用
Error 23: The drive is full.Error 42: The file is not found.
- xsl参数:<xsl:param name=""></xsl:param> 之类
- xsl:param
- xsl:variable/xsl:param
- <xsl:with-param>&<xsl:param>
- xsl:variable 与 xsl:param
- <xsl:param> 元素
- xsl:variable 与 xsl:param (原创)
- XML (5) xsl:variable 与 xsl:param
- XSL
- xsl
- XSL
- XSL
- XSL
- XSL
- xsl
- XSL
- XSL
- xsl
- boost linux下编译
- 009 - 微信小程序开发之页面分享 onShareAppMessage 分享参数用处
- 部署AlwaysOn第一步:搭建Windows服务器故障转移集群
- android handler runnable使用实例(关键是内部run中停止)
- dropdown-menu 单击不消失实现方式
- xsl参数:<xsl:param name=""></xsl:param> 之类
- 使用ScriptableObject进行序列化
- C语言实验——买糖果 (sdut oj)
- 菜单选择错误后,下面的打印语句重复打印错误次数
- Hibernate如何使用in关键字
- JAVA之集合框架
- 1602LCD显示
- button的dropdown-toggle的作用
- [转载]用ANSYS有限元软件模拟分析声学换能器