3

Null要素のチェック

<image><a><img src="abcd"/></a></image>

XSLTテンプレート:

<xsl:if test="image!=''">
IMAGE HAS TEXT OR INNER ELEMENT
</xsl:if>

「image」要素に子要素がありますが、空白の出力が表示されます。そして理想的にはそれはnullではありません。

値または子要素が必要であるという条件を確認する必要があります。子要素は空にすることができます。

これを修正する方法。

ありがとうございました

4

3 に答える 3

5

使用

image[string() or node()]

これは、現在のノードにtrue()少なくとも1つimageの子があり、その文字列値が空でないか、子がある場合(またはその両方)にのみ評価されます。

これは次のように簡略化できます

 image[node()]

文字列値を持つためには、要素のサブツリーにテキストノードの子孫が必要であることを考慮に入れてください。

(存在する場合)の文字列値をimageすべて空白にしない場合は、上記のXPath式の最初の式を次のように変更します。

image[normalize-space() or node()]
于 2012-08-28T11:27:38.997 に答える
1

要素に何らかの子ノードがある<xsl:if test="image/node()">...</xsl:if>かどうかを確認したり、要素に少なくとも1つの子要素があるかどうかをテストしたりするために使用します。image<xsl:if test="image/*">...</xsl:if>image

于 2012-08-28T11:27:11.097 に答える
0

これを使用して、子ノード(テキスト、要素など)をチェックできます。

<xsl:template match="image">
    <xsl:if test="node()">
        IMAGE HAS TEXT OR INNER ELEMENT
    </xsl:if>
</xsl:template>

または、より具体的にすることもできます。

<xsl:template match="image">
    <xsl:if test="a | text()">
        IMAGE HAS TEXT OR INNER ELEMENT
    </xsl:if>
</xsl:template>
于 2012-08-28T11:36:36.807 に答える