xslt转换xml为html文件时如何给其标签动态添加id属性?

本文详细介绍了如何在使用XSLT将XML转换为HTML时,确保保留XML文件中的ID属性。通过利用XSLT的<xsl:attribute>元素,可以在生成的HTML中加入相应的ID,实现页面内的交互效果,如页内跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一直在用xlst语言翻译xml文件,当然,是把xml文件转换成html文件,在转换的过程中遇到了好多问题,其中之一就是遇到如下所示的xml代码:

<action id=“s1”>这是项目一!</action>

<action id=“s2”>这是项目二!</action>

<action id=“s3”>这是项目三!</action>

<action id=“s4”>这是项目四!</action>

<action id=“s5”>这是项目五!</action>

用xslt翻译这段xml代码,而且是要有序号,当然最简单的方法就是使用<xsl:for-each>,可以这么写:

<ul>

<xsl:for-each select="action">

<li style="list-style-type:decimal">

<xsl:value-of select="child::text()"/>

</li>

</xsl:for-each>

</ul>

但是这样翻译出来的html文件中,丢失了id属性,要知道很多时候我们是要用id属性进行操作,实现一些交互效果的,例如:页内跳转等。

那么如何给其加id属性呢?------<xsl:attribute>

<xsl:attribute name="id">id值</xsl:attribute>  OK!

所以上述的XSLT就可以这么写:

<ul>

<xsl:for-each select="action">

<xsl:variable name="myid" select="@id"/>

<div> //此处的<div>也可以换成别的东东,你懂得!

<xsl:attribute name = "id"><xsl:value-of select="$myid"/></xsl:attribute>

<li style="list-style-type:decimal">

<xsl:value-of select="child::text()"/>

</li>

</div>

</xsl:for-each>

</ul>

这么一来转换出来的html中的标签就会含有和xml文件中对应的id属性了!

Thank you for consulting!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值