+ -
当前位置:首页 → 问答吧 → 怎么把.xml中的数据应用到.xsl中?

怎么把.xml中的数据应用到.xsl中?

时间:2003-05-14

来源:互联网

比如说:
a.xml中
<item>
          <name>aa</name>
          <type>char</type>
          <length>100</length>
</item>
在a.xsl中有
<input name="name" type="text" maxlength=""/>
我怎么把a.xml中的<length>100</length>这个值100取到maxlength中来?
也就是使它为<input name="name" type="text" maxlength="100"/>

作者: debug   发布时间: 2003-05-14

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="test1.xsl"?>
<item>
          <name>aa</name>
          <type>char</type>
          <length>100</length>
</item>

test1.xsl

<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
        <xsl:apply-templates select="item/length"/>
  </xsl:template>
  <xsl:template match="length">
        <xsl:element name="INPUT">
        <xsl:attribute name="type">text</xsl:attribute>
        <xsl:attribute name="value">
                <xsl:value-of select="." />
        </xsl:attribute>
        </xsl:element>
  </xsl:template>
</xsl:stylesheet>

作者: Ming   发布时间: 2003-05-14

xsl为什么不改为
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" />
<xsl:template match="/item">
<input>
<xsl:attribute name="value">
<xsl:value-of select="length" />
</xsl:attribute>
</input>
</xsl:template>
</xsl:stylesheet>

另:
建议雪饮直接把定位确定

作者: flashsoft   发布时间: 2003-05-15

我刚开始学 xsl 的时候也是用二楼的写法
后来再三思索
觉得二楼的方法应该保留到复杂的元素创建里面
如果只是简单的 xml->html 转换
直接用 flashsoft 的写法
但是如果一个元素的创建使用到了大量原 xml 数据处理后的数据的话
使用大量的 <xsl:variable /> 反而不如 <xsl:element /> 来创造
也不知道说的对不对
反正我现在就这么写
偶尔一个两个简单的数据处理直接用 <input value="{abc/text()}" > 来处理算数
一篇大一点的 xsl 文件用二楼的写法写下来
大概要占用 30-40k 左右
不划算

作者: snakevil   发布时间: 2003-05-17

<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" />
<xsl:template match="/item">
<input name="name" type="text" maxlength="{length}"/>
</xsl:template>
</xsl:stylesheet>

作者: imafool   发布时间: 2003-05-18

倒,又学到了,继续中

作者: flashsoft   发布时间: 2003-05-20