如果定义中不存在某些XML元素,如何跳过某些XSLT元素?

时间:2016-12-18 13:00:12

标签: xml xslt xslt-1.0

我有XML

<?xml version="1.0"?>
<data>
<element>
 <A>192.168.188.100</A>
 <B>/shelf=1</B>
 <C></C>
</element>
<element>
 <A>192.168.188.100</A>
 <B>/slot=1</B>
</element>
<element>
 <A>192.168.188.23</A>
 <B>/port=client:1:3:1-2</B>
</element>
</data>

我的XSLT映射有效:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:max="http://www.ibm.com/maximo">

<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="/"> 
    <max:SyncCIDW>
    <max:CIDWSet>
    <xsl:apply-templates select="data/element" />
    </max:CIDWSet>
    </max:SyncCIDW>
</xsl:template> 

  <xsl:template match="element"> 
    <max:CI>
        <max:CINUM><xsl:value-of select="A"/></max:CINUM>
    </max:CI>
  </xsl:template>

</xsl:stylesheet>

但现在我只想处理定义中包含元素C的元素。那么C元素是否有价值,但只有处理C的元素才会被处理?

所以基本上我这个例子的输出结果应该只有1个元素。

由于

1 个答案:

答案 0 :(得分:2)

<xsl:apply-templates select="data/element" />更改为<xsl:apply-templates select="data/element[C]" />