我必须将一个 xml 转换为几个插入语句。
在 XML 内部有一个<xpdl:ExtendedAttributes>
包含最多五个元素的元素<xpdl:ExtendedAttribute name="attribute1" Value="value1">
。输出字符串必须类似于以下示例之一:
,'Value1','Value2','Value3','Value4','Value5');
,'','','Value3','Value4','Value5');
etc.
问题是,如果我没有在我的程序中为生成 xml 的属性设置值,它将不会创建<xpdl:ExtendedAttribute>
-Element。
我尝试了以下代码:
<xsl:template match="xpdl:ExtendedAttributes">
<xsl:for-each select="xpdl:ExtendedAttribute">
<xsl:choose>
<xsl:when test="@Name='Value1'">
<xsl:value-of select="concat($apos,./@Value,$apos,',')"/>
</xsl:when>
<xsl:when test="@Name='Value2'">
<xsl:value-of select="concat($apos,./@Value,$apos,',')"/>
</xsl:when>
<xsl:when test="@Name='Value3'">
<xsl:value-of select="concat($apos,./@Value,$apos,',')"/>
</xsl:when>
<xsl:when test="@Name='Value4'">
<xsl:value-of select="concat($apos,./@Value,$apos,',')"/>
</xsl:when>
<xsl:when test="@Name='Value5'">
<xsl:value-of select="concat($apos,./@Value,$apos,',')"/>
</xsl:when>
<xsl:otherwise>'',
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
但这并没有考虑缺失的属性。有人知道如何解决这个问题吗?