我有一个要求,其中xml可能有一个或多个服务(名称可能不同),并且我的内容应该包含xml中所有这些可用的服务,如下所示
<li><a href="#_cms">CMS</a></li>
<li><a href="#_dis">DIS</a></li>
但是上面我已经对a
标记内容和href
进行了硬编码,因为我知道这些是值,但实时我不会知道这些名称,所以如何设置{{1} }和href
基于xml值?
到目前为止,我得到了以下anchor tag contents
语句,它从xml获取了所有服务名称
for-each
但它似乎不起作用,它给了我所有的服务,但链接不起作用。还有其他想法吗?
注意:我从this question link获得了有类似要求的帮助。
答案 0 :(得分:1)
有一个xslt函数generate-id()
,它为xml中的任何节点提供唯一的文本标识符。
答案 1 :(得分:1)
使用类似下面的内容,应该可以使用
<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>
答案 2 :(得分:0)
<li><a href="#_ser{$number}"><xsl:value-of select="@name"/><xsl:value-of select="position()"/></a></li>
但它似乎不起作用......
你要写的是这个(如果这个唯一标识节点的话,根本不讨论):
<li>
<a href="#_ser{$number}{@name}{position()}"/>
</li>