0
私はXMLXML要素が定義に存在しない場合、XSLT要素をスキップする方法はありますか?
<?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つの要素しか持たないはずです。
おかげ<xsl:apply-templates select="data/element[C]" />
へ
こんにちはMartinさん、もう1つの質問がある場合は申し訳ありません。C要素を除いて、そのXMLを処理するにはD要素を持たなければいけないのでしょうか?CとDの両方を満たすためには、 ? – Dejan
このような場合は、data/element [C] [D]か正しい構文ですか? – Dejan
'data/element [C] [D]'は 'C'要素と' D'要素の両方を(少なくとも1つ)持つことをチェックします。必要に応じて 'data/element [C and D]'と書くこともできます。 –