如何在XSLT中执行类似语句或等效语句

问题描述:

是否可以根据“if”“Like”语句或xslt中的等效语言写出xml?如何在XSLT中执行类似语句或等效语句

我有一个名为“cust_code”的元素 如果元素以“HE”开头,那么我想写出来,否则跳到下一个。

可能吗?

+0

重复[如何在XSLT中实现if-else语句?](https://stackoverflow.com/questions/13622338/how-to-implement-if-else-statement-in-xslt) – kjhughes

+0

你的问题是不清楚。请提供[mcve]。 XSLT没有“*跳转到下一个*”机制。从您的描述来看,将模板仅应用于您希望“*写出*”开始的节点会更加优雅。 –

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 - ifw3school - choose

至于具有以特定字符串开头的元素,请查看功能starts-with。您可以在this SO answer(仅从主答案中省略not中找到一个很好的示例,因为他们的测试是查找以特定字符串开头的字符串而不是)。您也可以查看this answer了解更多信息。

+0

谢谢。 我已经在xslt中完成了一个if语句,并且工作正常。 在这个例子中,虽然我想知道元素值是否有前两个字符“HE”,但是元素的完整值将类似于“He2345567” 我只想写入以“HE”开头的 –

+0

@ NathanFuller我链接的其他SO答案显示了如何使用'starts-with'函数。因此,例如,您可以执行' ... ...'。 – AntonH

+0

谢谢安东 这正是我所需要的。 奇妙地工作。 –