您的位置:首页 > 其它

XML技术在界面生成中的简单应用(XSLT相关)1

2012-11-06 23:30 337 查看
  先,请确认如下概念您都有一定的了解,当然,如果您并没有相应的基础,这里列出了一些基本概念和W3C相应教程的链接。

XML

  XML 指可扩展标记语言,其被设计用来传输和存储数据。

XSL

  XSL 指扩展样式表语言(EXtensible Stylesheet Language),其作用一定程度上相当于HTML中的CSS,但它不仅仅是一种样式表语言,而是包含了如下三部分:

XSLT(一种用于转换 XML 文档的语言)

XPath(一种用于在 XML 文档中导航的语言)

XSL-FO(一种用于格式化 XML 文档的语言)

XSLT

  XSLTXSL 转换。 既是将 XML 文档通过 XSL 转换为其他文档,比如 XHTML

XPath

  XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQueryXPointer 同时被构建于 XPath 表达之上。

XML Schema

  XML Schema 用于描述 XML 文档的结构,XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。

  下来应该对上面所提到的技术或多或少有了一些了解了吧?那么就说一下我接下来想要做些什么练习题吧!哦,对了,我还用到了Bootstrap,谁让咱美工不太好呢。

先看看东西效果。然后再清理一下思绪。接着在着手做出类似的东西来巩固下。

View Code

<xsl:template match="//OptionGroup">
<div class="control-group">
<xsl:if test="string-length(@Title) > 0">
<label class="control-label">
<xsl:value-of select="@Title"/>
</label>
</xsl:if>
<div class="controls">
<xsl:for-each select="Option">
<xsl:call-template name="option-template">
<xsl:with-param name="groupName" select="@GroupName"></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</div>
</div>
</xsl:template>

<xsl:template name="option-template">
<xsl:param name="groupName"></xsl:param>
<xsl:if test="@Multy != 'true'">
<label class="radio inline">
<input type="radio">
<!--<xsl:if test="$groupName">-->
<xsl:attribute name="name">
<xsl:value-of select="$groupName"/>
</xsl:attribute>
<!--</xsl:if>-->
<xsl:if test="@Selected">
<xsl:attribute name="checked">
<xsl:value-of select="'checked'"/>
</xsl:attribute>
</xsl:if>
</input>
<xsl:value-of select="@Label"></xsl:value-of>
</label>
</xsl:if>
<xsl:if test="@Multy = 'true'">
<label class="checkbox inline">
<input type="checkbox">
<xsl:if test="@Selected">
<xsl:attribute name="checked">
<xsl:value-of select="'checked'"/>
</xsl:attribute>
</xsl:if>
</input>
<xsl:value-of select="@Label"></xsl:value-of>
</label>
</xsl:if>
</xsl:template>


简单不?哦,数据绑定还没加呢。先不考虑SEO吧。因为我做这个的目的是考虑AJAX项目快速开发的。当然,做非AJAX的会更加舒适,因为可以直接拿来XML当数据啊。让后XSLT转换啊。不过操作都在客户端的AJAX项目也不用太愁,谁让那么多有智慧又有爱心的人已经给我们准备好了那么多好用的Javascript库呢。

先看看这个KnockoutJS教程 | 文档)怎么样,要不您找个更好的也行,反正也就一类库,就算自己写,只要功能能实现,足够稳定都是可以的,不是吗?

源代码很乱,我就先扔这里了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: