次のような xml ドキュメントがあります。
<p>
<c1 />
<c2 />
</p>
子要素 c1 と c2 はオプションですが、処理ステップのために存在する必要があります。そのため、空の要素として追加する xslt スタイルシートを作成しようとしています (子の順序は関係ありません)。
ここに私のスタイルシートがあります:
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="p[not(c1)]">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<c1 />
</xsl:copy>
</xsl:template>
<xsl:template match="p[not(c2)]">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<c2 />
</xsl:copy>
</xsl:template>
子要素の 1 つだけが欠落している限り、これは正常に機能します。ただし、両方が欠落している場合は、c1 のみが作成されます。それを防ぎ、c1 と c2 の両方 (実際には約 10 の子) を強制的に作成するにはどうすればよいですか?
ありがとう。ジョスト