如何在XSLT中执行类似语句或等效语句
是否可以根据“if”“Like”语句或xslt中的等效语言写出xml?如何在XSLT中执行类似语句或等效语句
我有一个名为“cust_code”的元素 如果元素以“HE”开头,那么我想写出来,否则跳到下一个。
可能吗?
If
语句存在于XSLT中。
<xsl:if test="...">
...
</xsl:if>
但是,这是一个简单的if
,没有其他的选择。
如果你想要一个相当于if ... else ...
或switch ... case ...
,您需要使用以下命令:
<xsl:choose>
<xsl:when test="...">
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
你可以有多达必要when
情况。
链接:w3school - if和w3school - choose。
至于具有以特定字符串开头的元素,请查看功能starts-with
。您可以在this SO answer(仅从主答案中省略not
中找到一个很好的示例,因为他们的测试是查找以特定字符串开头的字符串而不是)。您也可以查看this answer了解更多信息。
谢谢。 我已经在xslt中完成了一个if语句,并且工作正常。 在这个例子中,虽然我想知道元素值是否有前两个字符“HE”,但是元素的完整值将类似于“He2345567” 我只想写入以“HE”开头的 –
@ NathanFuller我链接的其他SO答案显示了如何使用'starts-with'函数。因此,例如,您可以执行'
谢谢安东 这正是我所需要的。 奇妙地工作。 –
重复[如何在XSLT中实现if-else语句?](https://stackoverflow.com/questions/13622338/how-to-implement-if-else-statement-in-xslt) – kjhughes
你的问题是不清楚。请提供[mcve]。 XSLT没有“*跳转到下一个*”机制。从您的描述来看,将模板仅应用于您希望“*写出*”开始的节点会更加优雅。 –