Удалить элементы на основе значения другого элемента - 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">