gpt4 book ai didi

xslt - 如何在XSLT中实现 “if else if else”条件

转载 作者:行者123 更新时间:2023-12-03 11:48:42 26 4
gpt4 key购买 nike

是否可以在xsl中实现“if else if if else”?例如我有数据:

<document>
<line>
<name>MAR111</name>
<value>1</value>
</line>

<line>
<name>MAR111</name>
<value>3</value>
</line>
<line>
<name>MEA111</name>
<value>1</value>
</line>
<line>
<name>MPR111</name>
<value>1</value>
</line>
<line>
<name>MEA111</name>
<value>4</value>
</line>
<line>
<name>MPR111</name>
<value>2</value>
</line>
</document>

我需要获得三个带有三个名称的文档模板:
<document>
<MAR>
<name>MAR111</name>
<number>1</number>
<number>4</number>
</MAR>
</document>
<document>
<MEA>
<name>MEA111</name>
<number>1</number>
<number>4</number>
</MEA>
</document>
<document>
<MPR>
<name>MPR111</name>
<number>1</number>
<number>2</number>
</MPR>
</document>

我尝试在应用模板上使用“选择何时”,但是也许有更好的方法:
<xsl:template match="/">
<xsl:choose>
<xsl:when test="/document/line/name='MEA111'">
<xsl:apply-templates mode="MEA" select="/document"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="/document/line/name='MPR111'">
<xsl:apply-templates mode="MPR" select="/document"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="/document/line/name='MAR111'">
<xsl:apply-templates mode="MAR" select="/document"/>
</xsl:when>
</xsl:choose>
</xsl:template>

最佳答案

实际上,您可以将它们合并在一起:

<xsl:template match="/">
<xsl:choose>
<xsl:when test="/document/line/name='MEA111'">
<xsl:apply-templates mode="MEA" select="/document"/>
</xsl:when>
<xsl:when test="/document/line/name='MPR111'">
<xsl:apply-templates mode="MPR" select="/document"/>
</xsl:when>
<xsl:when test="/document/line/name='MAR111'">
<xsl:apply-templates mode="MAR" select="/document"/>
</xsl:when>
</xsl:choose>
</xsl:template>

编辑:佩特拉,澄清之后,您想要的东西似乎更加容易:
<xsl:template match="/">
<xsl:if test="/document/line/name='MEA111'">
<xsl:apply-templates mode="MEA" select="/document"/>
</xsl:if>
<xsl:if test="/document/line/name='MPR111'">
<xsl:apply-templates mode="MPR" select="/document"/>
</xsl:if>
<xsl:if test="/document/line/name='MAR111'">
<xsl:apply-templates mode="MAR" select="/document"/>
</xsl:if>
</xsl:template>

关于xslt - 如何在XSLT中实现 “if else if else”条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5169140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com