我需要创建一个利用 IF 和 WHEN 的 XML/XSLT 文档。我熟悉 PHP 中的这些语句(尽管是 if/else),但不熟悉 XML/XSLT。
例如我有一个产品,该产品可能有 2 个名称:1)层压名片 2)名片
如果是选项 1,那么我需要获取该订单的自定义选项的值并将其回显,如下所示:
<xsl:choose>
<xsl:when test="custom_options/option[name='Lamination Options (Your printing looks great unlaminated, if you wish you can add gloss or matt lamination below)']/value='Matt Lamination (Both sides)'">
<Extrinsic name="Laminating?">Matt Lam DS SRA3</Extrinsic>
</xsl:when>
<xsl:when test="custom_options/option[name='Lamination Options (Your printing looks great unlaminated, if you wish you can add gloss or matt lamination below)']/value='Gloss Lamination (Both sides)'">
<Extrinsic name="Laminating?">Gloss Lam DS SRA3</Extrinsic>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
所以我需要检查产品的名称,如果它包含单词 lamination 然后运行另一个 if 语句,如果没有运行不同的 if 语句,所以如果它是 PHP,它看起来像这样:
<?php $product = "Laminated Business Cards";
if(strpos($product,'Laminated')){
if(value of custom option == 'Matt Laminated'){
echo "Matt Lam";
} elseif(value of custom option == 'Gloss Laminated'){
echo "Gloss Lam";
} else echo "No Lamination";
} elseif(value of custom option == 'Matt Laminated +2days'){
echo "Matt Lam";
} elseif(value of custom option == 'Gloss Laminated +2days'){
echo "Gloss Lam";
} else
echo "No Lamination";
?>
所以我需要在 XSLT/XML 中重现它。我知道这有点混乱,但我正在一个设计糟糕的系统的约束下工作,除了走这条路外,别无选择。
干杯。