为两个xml配置XSL定义

时间:2013-06-07 05:58:55

标签: xml xslt

我有两个xml,如下所示,以及xsl定义它,现在请建议如两个xml所示,现在有一个标记,因为它存在于Second.xml中但不存在于First.xml中我想要配置 xsl定义,例如它应该适用于两种情况rite现在它只适用于Second.xml我希望xsl定义应该以这样的方式配置它应该适用于两种情况,因为有时在xml我们没有得到有时标签的价值。请指教

***************
    First.xml
****************
<productClassificationIdentifier>
            <ClassificationId>1022</ClassificationId>
            <ClassificationName>AAABBB</ClassificationName>
            <Reference>FFF</Reference>
    </productClassificationIdentifier>


***************
    Second.xml
****************
<productClassificationIdentifier>
            <ClassificationId>1044</ClassificationId>
            <ClassificationName>CCCDDD</ClassificationName>
            <Reference>JJJ</Reference>
                <ClassificationIdScheme>FirstClassification</ClassificationIdScheme>
        </productClassificationIdentifier>


***************
    XSL Defination
****************

        <xsl:param name="abvIdVar"/>
        <xsl:for-each select="$abvIdVar">
            <xsl:choose>
                <xsl:when test="./ClassificationIdScheme = 'FirstClassification'">
                    <xsl:value-of select="./ClassificationId"/>
                </xsl:when>
            </xsl:choose>
        </xsl:for-each>

请告知人们...... !!

嗨伙计,

我通过

实现了它的解决方案
 <xsl:otherwise>
xsl:value-of select="./ClassificationId"/>                               </xsl:otherwise>

1 个答案:

答案 0 :(得分:0)

如果你想在没有'ClassificationIdScheme'元素的第一个XML的条件下运行它,那么用这个改变你的when条件:

  <xsl:when test="./ClassificationIdScheme = 'FirstClassification' or not(./ClassificationIdScheme)">
    <xsl:value-of select="./ClassificationId"/>
  </xsl:when>