在使用xsl把xml转换成html中,有时候 html元素属性的值需要从xml文档中取
比如:<a>的href属性 和<image> src属性
此时需要用到xsl中的变量:<xsl:variable>
声明变量: <xsl:variable name="path" select="urlAddress"/>
name是后续要用到的变量名称 select是从xml中取值的表达式
1.在html中使用变量:
<a href="{$path}"><xsl:value-of xselect ="title"/></a>
<a>元素的href属性值来之刚定义的变量 需要加大括号
而innerText属性则来自xml中另外一个元素:title
2.继续在xsl中使用变量:
<h3> <xsl:value-of select="$path" /> </h3>
在 XSL 指令属性中使用诸如 select 的变量,是该规则的一种例外情况
比如:<a>的href属性 和<image> src属性
此时需要用到xsl中的变量:<xsl:variable>
声明变量: <xsl:variable name="path" select="urlAddress"/>
name是后续要用到的变量名称 select是从xml中取值的表达式
1.在html中使用变量:
<a href="{$path}"><xsl:value-of xselect ="title"/></a>
<a>元素的href属性值来之刚定义的变量 需要加大括号
而innerText属性则来自xml中另外一个元素:title
2.继续在xsl中使用变量:
<h3> <xsl:value-of select="$path" /> </h3>
在 XSL 指令属性中使用诸如 select 的变量,是该规则的一种例外情况
不需要加大括号
此外这个帖子也很好哦CSDN帖子,
<?xml-stylesheet type="text/xsl" href="std.xsl"?>
<?xml version="1.0" encoding="GBK"?>
<T>
<C key="C1">
<C1 name="汉字"></C1>
<C2 name="拼音"></C2>
</C>
<R id="1">
<C1>一</C1>
<C2>yi</C2>
</R>
<R id="2">
<C1>丁</C1>
<C2>ding</C2>
</R>
</T>
<!--分界线-->
<pre name="code" class="html"><xsl:variable name="KeyCol" select="/T/C/@key" />
<!--KeyCol的值指出C1,C2谁是主键-->
<!--在select中插入变量来获取节点值时-->
<pre name="code" class="html"><xsl:value-of select="$KeyCol"/> <!--这样也不对,得到的checkbox的value直接为'C1'-->
<!--应该这样写,才会获得内部的类似于文本的值-->
<pre name="code" class="html"><input type="checkbox>
<xsl:attribute name="value">
<xsl:value-of select="./*[name()=$KeyCol]"/>
</xsl:attribute>
</input>