他の要素の値に基づいて特定の要素を削除するために使用しているスタイルシートがあります。しかし、それは機能していません...
サンプル入力XML
<Model>
<Year>1999</Year>
<Operation>ABC</Operation>
<Text>Testing</Text>
<Status>Ok</Status>
</Model>
操作値が「ABC」の場合、XMLからテキストノードとステータスノードを削除します。そして、次の出力を提供します。
<Model>
<Year>1999</Year>
<Operation>ABC</Operation>
</Model>
これが私が使用しているスタイルシートですが、操作が「ABC」でない場合でも、すべてのXMLからテキストノードとステータスノードが削除されています。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="ID" select="//Operation"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Text | Status">
<xsl:if test ="$ID ='ABC'">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
前もって感謝します
名前空間が次のように存在する場合、どうすれば同じことができますか
<ns0:next type="Sale" xmlns:ns0="http://Test.Schemas.Inside_Sales">