如何在xsl中为锚标记动态分配名称和href [英] How to dynamically assign name and href for anchor tag in xsl
问题描述
我有一个要求,其中 xml 可能有一个或多个服务(名称可能不同),并且我有一个内容应该包含来自 xml 的所有这些可用服务,如下所示
I have a requirement where the xml might have one or more services (name might be different), and I am having a content which should have all of these available services from the xml something like below
<li><a href="#_cms">CMS</a></li>
<li><a href="#_dis">DIS</a></li>
但上面我已经硬编码了 a
标签内容和 href
因为我知道这些是值,但在实时我不会知道这些名称,那么如何根据xml值设置href
和anchor tag content
?
but above I have hardcoded the a
tag content and href
since I know these are the values, but in real time I would not be knowing these names, so how to set href
and anchor tag contents
based on xml values?
到目前为止,我得到了下面的 for-each
语句,它从 xml 中获取了所有服务名称
So far I got the below for-each
statement, which gets me all the service names from the xml
<xsl:variable name="number">
<xsl:number/>
</xsl:variable>
<xsl:for-each select="csmclient/product/domainmetadata/domainmetadata_service">
<li><a href="#_ser{$number}"><xsl:value-of select="@name"/><xsl:value-of select="position()"/></a></li>
</xsl:for-each>
.
.
.
<!--far below end-->
<xsl:for-each select="domainmetadata/domainmetadata_service">
<h3>Service Name: <span style="color:#328aa4"><a name="_ser{$number}" href="#_top"><xsl:value-of select="@name"/></a></span></h3>
.
.
.
</xsl:for-each>
但它似乎不起作用,它为我提供了所有服务,但链接不起作用.还有其他想法吗?
but it does not seem to work, it gives me all my services but the link does not work. Any other ideas?
注意:我从这个问题中得到了帮助链接有类似要求.
推荐答案
使用类似下面的东西,应该可以
Use something like below, should work
<xsl:for-each select="csmclient/product/domainmetadata/domainmetadata_service">
<li><a href="#{generate-id()}"><xsl:value-of select="@name"/></a></li>
</xsl:for-each>
<xsl:for-each select="domainmetadata/domainmetadata_service">
<h3>Service Name: <span style="color:#328aa4"><a name="{generate-id()}" href="#_top"><xsl:value-of select="@name"/></a></span></h3>
</xsl:for-each>
这篇关于如何在xsl中为锚标记动态分配名称和href的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!