您好,如何将链接(即:http://www.google.com)声明为变量,然后将该变量用于其他if?这样的东西?
<xsl:element name="a">
<xsl:attribute name="href">http://www.google.com</xsl:attribute>// first get the link
<xsl:choose>
<xsl:when test="http://www.google.com">
Do something 1
</xsl:when>
<xsl:otherwise>
Do something 2
</xsl:choose>
</xsl:element>
这可能吗?我应该看什么?
答案 0 :(得分:3)
是关于如何声明一个 链接(即:http://www.google.com)作为 变量然后使用变量 如果是吗?
使用此代码作为工作示例 - 当然您至少需要了解XSLT的基础知识:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:variable name="vLink" select="'http://www.google.com'"/>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="$vLink = 'http://www.google.com'">
It is the Google link...
</xsl:when>
<xsl:otherwise>
It is not (exactly) the Google link...
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
将此转换应用于任何XML文档(未使用)时,会生成所需结果:
It is the Google link...
也可以使用全局<xsl:param>
。这可以由转化的调用者在外部设置。
答案 1 :(得分:0)
直接与内容匹配,并将URL声明为变量。
答案 2 :(得分:0)
如果您需要更多全球尝试:
...
<xsl:apply-templates select="a" />
...
<xsl:template match="a">
Just a link
</xsl:template>
<xsl:template match="a[starts-with(@href, 'http://google.com/') or starts-with(@href, 'http://www.google.com/')]">
Link to google.com
</xsl:template>
答案 3 :(得分:-1)
在某种程度上可能,但在XSL中没有if-else结构。这是我测试过的一个版本,您可以根据自己的需要进行调整。我使用的输入是:
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<xml>
<LinkValue>http://www.google.com/</LinkValue>
</xml>
如果LinkValue是上面的字符串,那么显示“Do something 1”的XSL或者如果我修改了它就是“Do something 2”:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="LinkValue" select="//LinkValue"/>
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="$LinkValue"/></xsl:attribute>
<xsl:if test="$LinkValue = 'http://www.google.com/'">
Do something 1
</xsl:if>
<xsl:if test="$LinkValue != 'http://www.google.com/'">
Do something 2
</xsl:if>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
希望您可以使用这些示例来准确确定您的场景需要实现的内容。