私はXSLTテンプレートのオーバーライドに関する小さな質問があります。 は私のXMLのこのセグメントのために:私のXSLTシートでXSLTテンプレートのオーバーライド
<record>
<medication>
<medicine>
<name>penicillin G</name>
<strength>500 mg</strength>
</medicine>
</medication>
</record>
、私は次の順序で2つのテンプレートがあります。
<xsl:template match="medication">
<xsl:copy-of select="." />
</xsl:template>
<xsl:template match="medicine/name">
<text>!unauthorized information!</text>
</xsl:template>
を私は何をしたいの投薬要素の下にすべてのものをコピーすることです"name"要素(または私が明示的に定義する他の要素)以外の出力。最終的なxmlはRAW XML形式でユーザーに表示されます。言い換えれば、私が望む結果は、次のとおりです。
<record>
<medication>
<medicine>
<text>! unauthorized information!</text>
<strength>500 mg</strength>
</medicine>
</medication>
</record>
私は入力と同じXMLを取得していますが、要素をテキストで置き換えていません。 2番目のテンプレートが一致する理由は、最初のテンプレートのname要素を上書きしないのですか?事前のおかげで
- アリ
回答alamarに感謝します。これは多くの他の要素を持つ大きなXMLの塊であるため、投薬テンプレートを削除することはできません。ですから、最初はmedication要素をそのまま表示したいと思いますが、名前のようなテンプレート規則があればそれをテキストで置き換えます。希望を明確にする。 –
さて、あなたにも述べることができる ます。 ます。 XSL:テンプレート> –
alamar