我正在进行跨越多个文件的XSLT转换,而某些文件不会有字段。我有一个解决方法(如下所示),但宁愿不必为所有字段都这样做。
注意:我使用的是XSLT 1.0,但现在可以使用2.0
<xsl:variable name="TestVar" select="ns2:value"/>
<xsl:if test="$TestVar != null">
<Namespace:hasThisValue>
<xsl:value-of select="ns2:value"/>
</Namespace:hasThisValue>
</xsl:if>
答案 0 :(得分:0)
您必须在文字中显示输入样本的确切详细信息,并在文字中说明&#34;某些文件不会有字段&#34;,在您的代码中,您需要检查&#34; ; ns2:value!= null&#34;在我看来,作为右手边并没有多大意义&#34; null&#34;会尝试选择该名称null
的元素。因此,大多数人都会问类似的问题,但是你没有很好地解释你期望的数据类型,以及你希望将其转化为什么样的数据,特别是你认为&#34; null&#34; XML上下文中的值(例如,XSD架构具有xsi:nil
属性。)
一般情况下,如果您想将ns2:value
元素转换为Namespace:hasThisValue
元素,那么您可以编写模板
<xsl:template match="ns2:value">
<Namespace:hasThisValue>
<xsl:value-of select="."/>
</Namespace:hasThisValue>
</xsl:template>
并确保进一步提升您拥有<xsl:apply-templates/>
的层次结构。