如何在if条件中附加字符串值

Posted

技术标签:

【中文标题】如何在if条件中附加字符串值【英文标题】:How to append string values inside if condition 【发布时间】:2021-07-09 15:17:24 【问题描述】:

我是 XSL 的新手。我有一个如下的 XML,如果 CoverageCode 等于 -'HomeCoverage',那么我必须验证 'roofRestrictionEndt'、'sidingRestrictionEndt' 和 'paintRestrictionEndt' 的下 3 个元素。如果'roofRestrictionEndt'退出并且它的值为'Y'那么我需要在'results'标签下打印'Roof',如果'sidingRestrictionEndt'存在并且它的值是'Y'那么我需要打印'siding'以防万一它与上面的一起存在,然后我需要打印“屋顶;壁板'。如果存在“paintRestrictionEndt”并且它的值是“Y”以及其他 2 个元素,那么我需要打印“屋顶”;壁板;画'。我尝试通过声明变量并编写 If 条件并尝试在 IF 条件中相应地附加值,但我开始知道声明的变量是不可变的。在java中,我们可以通过使用StringBuffer来实现。有没有办法在 XSL 中实现这一点?下面是 XML。

<locationCoverage ID="3">

<coverageCode >HomeCoverage</coverageCode>
<roofRestrictionEndt >Y</roofRestrictionEndt>
      <sidingRestrictionEndt>Y</sidingRestrictionEndt>
      <paintRestrictionEndt >Y</paintRestrictionEndt>
<locationCoverage>

结果应该如下所示

<results>
      <result>Roof;siding;paint</result>
      
      </results>

如果我有以下输入 XML

<locationCoverage ID="3">
<coverageCode >HomeCoverage</coverageCode>
<roofRestrictionEndt >Y</roofRestrictionEndt>
 <paintRestrictionEndt >Y</paintRestrictionEndt>
</locationCoverage>

以上 XML 结果应如下所示

<results>
      <result>Roof;paint</result>
      
      </results>

如果有人帮我解决这个问题,不胜感激。提前致谢。

【问题讨论】:

【参考方案1】:

如果我理解正确(这完全不确定),你想做这样的事情:

<xsl:template match="locationCoverage[coverageCode='HomeCoverage']">
    <xsl:variable name="test-results">
        <xsl:if test="roofRestrictionEndt='Y'">Roof </xsl:if>
        <xsl:if test="sidingRestrictionEndt='Y'">siding </xsl:if>
        <xsl:if test="paintRestrictionEndt='Y'">paint</xsl:if>
    </xsl:variable>
    <result>
        <xsl:value-of select="translate(normalize-space($test-results), ' ', ';')"/>
    </result>
</xsl:template>

【讨论】:

谢谢,迈克尔。您的解决方案对我有用。

以上是关于如何在if条件中附加字符串值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 if-else 条件下的列中使用 Spark 值 - Scala

当 Ajax 响应来自使用 select2 的 laravel 控制器时,如何检查 JQuery 附加选项中的条件?

满足某些条件时,如何将字符串附加到一行?

如何在没有if条件swift的情况下验证多个值[关闭]

如何在jquery中编写if else if语句,其中条件由wordpress选项设置设置

如何将文本附加到特定的php数组值