У меня есть xml с тегом, updateTypes с возможными значениями "LINE", "HEADER". Это может быть только «LINE» или «HEADER». Или Это может быть комбинация «LINE» и «HEADER».
XML с LINE и HEADER
<message>
<orderOfficeId>1</orderOfficeId>
<channelMthdCd>1</channelMthdCd>
<updateTypes>LINE</updateTypes>
<updateTypes>HEADER</updateTypes>
<message>
XML с LINE
<message>
<orderOfficeId>1</orderOfficeId>
<channelMthdCd>1</channelMthdCd>
<updateTypes>LINE</updateTypes>
<message>
XML с HEADER
<message>
<orderOfficeId>1</orderOfficeId>
<channelMthdCd>1</channelMthdCd>
<updateTypes>HEADER</updateTypes>
<message>
Вот мой xslt, который должен генерировать xml на основе значения updateType. Это работало нормально для одного возможного случая. Но он не работает для нескольких значений для этого тега. Могу ли я убедиться, что он должен работать эффективно на основе значений, это может быть один updateType или комбинация обоих.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<MESSAGE>
<SEG>
<xsl:choose>
<xsl:when test="message/updateTypes= 'HEADER'">
<HEAD>
<TEST>HEAD</TEST>
<TYP>C</TYP>
</HEAD>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="message/updateTypes= 'LINE' and 'HEADER'">
<HEAD>
<TEST>HEAD</TEST>
<TYP>D</TYP>
</HEAD>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="message/updateTypes= 'LINE'">
<HEAD>
<TEST>HEAD</TEST>
<TYP>B</TYP>
</HEAD>
</xsl:when>
</xsl:choose>
</SEG>
</MESSAGE>
</xsl:template>
</xsl:stylesheet>
ВЫХОД:
<message>
<SEG>
<HEAD>
<TEST>HEAD</TEST>
<TYP>B</TYP>
</HEAD>
</SEG>
<message>
ОЖИДАЕМЫЙ ВЫХОД:
<message>
<SEG>
<HEAD>
<TEST>HEAD</TEST>
<TYP>D</TYP>
</HEAD>
</SEG>
<message>