做了一小段xml.与大家交流。
三个文件。(blue.xml blue.xsl blue.css )拷到本地同一目录下。
blue.xml:
运行代码框
[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]
blue.xsl:
运行代码框
[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]
blue.css:
运行代码框
[ctrl+a 全部选择 提示:你可先修改部分代码,再按运行]
(以前见别人做过一个类似的电子文档。)
xml在更多的时候只是一种数据文件,利用xml我们可以使内容与样式分离
如果我们将xml文件比作结构化的原料的话。那么xsl就好像"筛子"与"模子",
筛子选取自己需要的原料,这些原料再通过模子形成最终的产品。
这个模子大致是这样:我们先设计好表现的页面,再将其中需要从xml中获取数据来填充内容的部分去掉,
然后用xsl语句从xml中筛出相关的数据来填充。
xml在展开时是一个树形结构,将树形结构中自定义标记称为节点,节点之间存在父子、兄弟关系,要访问其中的结点从根结点就要以"/"来层层进入。
怎样从xml里提取相关的数据,就要用到xsl提供的模式化查询语言。就是通过相关的模式匹配规则表达式从xml里提取数据的特定语句,即上面所说的"筛子"。
选择模式:
<xsl:for-each>、<xsl:value-of>和 <xsl:apply-templates>
匹配模式:
<xsl:template>
<xsl:template match="replys" >
<xsl:for-each select="reply" >
<div>
<div id="replyperson">回复人:<xsl:value-of select="username"/> <xsl:value-of select="rankname"/></div>
<div><xsl:apply-templates select="content" /></div>
<div>发表时间:<xsl:value-of select="datetime"/></div>
</div>
</xsl:for-each>
</xsl:template>
简单说下这段:
xsl模板将xsl的设计细化成一个个模板(块),最后再将这些模板(块)组合成一个完整的xsl;好比船与集装箱,我们不是将所有的货物一件件地堆起来,而是装在各自的集装箱中,然后再在船上将这些集装箱堆放起来。这种方法可以使你先从整体上考虑整个xsl的设计,然后将一些表现形式细化成不同的模块,再具体设计这些模块,最后将它们整合在一起,这样,将宏观与微观结合起来,符合人们条理化、规范化要求。
装集装箱--书写模板(块):<xsl:template>
<xsl:template match="replys">
match ── 确定什么样的情况下执行此模板。就是标记的名字;
其中最上层模板必须将match设为"/"。
<xsl:template>用match属性从xml选取满足条件的节点,在真对这些特定的节点形成
一个特定输出形式的模板。
<xsl:for-each select="reply">循环选择。
select :确定在此上下文环境中应执行什么模板,即选取用< xsl:template >标记建立的模板(块)。
<xsl:value-of> 直接输出选择的。
调用模板(块):<xsl:apply-templates select="content" />
调用xsl最后一段。
<xsl:template match="content">
<xsl:apply-templates />
</xsl:template>
说多了。不太礼貌。 大家新年快乐。
一些基本概念和更多参考微软的"xsl开发者指南":
www.microsoft.com/china/msdn/archives/workshop/xmlfaq.asp
经典论坛讨论帖:
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器