Удалить элементы на основе значения другого элемента - XSLT

У меня есть таблица стилей, которую я использую для удаления определенных элементов на основе значения другого элемента. Тем не менее, это не работает ...

Образец входного XML

<Model>
<Year>1999</Year>
<Operation>ABC</Operation>
<Text>Testing</Text>
<Status>Ok</Status>
</Model>

Если значением операции является «ABC»; затем удалите узлы Text и Status из XML. И дает следующий вывод.

<Model>
<Year>1999</Year>
<Operation>ABC</Operation>
</Model>

Вот моя таблица стилей, которую я использую, но она удаляет узлы Text и Status из всех XML-файлов, даже если операция не является «ABC».

<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">

Ответы на вопрос(4)

Ваш ответ на вопрос