Я думаю, у меня это работает, но мне нужен совет. Я хотел бы знать, является ли это хорошей установкой для требования, которое я имею.
У меня есть требование применять различные правила преобразования к элементу на основе того, что содержится в этом элементе. Я пытался найти «xsl» и «выбрать», «содержит», «подстрока». Я не могу найти решение, применимое к этой ситуации.
Вот различные сценарии для этого элемента:
Если это начинается с U, мне нужно все до '/'
Если все начинается с ECG_001, мне нужно все после ECG_001
Если он не соответствует вышеуказанным критериям и содержит «/» дубль после «/»
Если он не соответствует 1,2 или 3, просто дайте мне значение
Вот что у меня есть:
<xsl:variable name="CustomerPO">
<xsl:choose>
<xsl:when test="contains(substring(rma/header/CustomerPO,1,1), 'U')">
<xsl:value-of select="substring-before(rma/header/CustomerPO,'/')"/>
</xsl:when>
<xsl:when test="contains(rma/header/CustomerPO, 'ECG_001')">
<xsl:value-of select="substring-after(rma/header/CustomerPO,'ECG_001')"/>
</xsl:when>
<xsl:when test="contains(rma/header/CustomerPO, '/')">
<xsl:value-of select="substring-after(rma/header/CustomerPO, '/')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="rma/header/CustomerPO"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Любые отзывы о потенциальных лазейках или более эффективный способ сделать это приветствуется.
Спасибо.