У меня есть этот стиль, и он не работает так, как предполагалось, и я не уверен, куда идти отсюда.Подтверждение таблицы стилей xslt
Это XML:
<Root>
<CSMLData>
<GoProject>
<Project>
<Timeline>
<GenericMixer>
<Tracks>
<Medias>
<Callout>
<Attributes>
<Attribute>
<Parameter>
<Keyframes>
<Keyframe id="xx" value="Transparent Hotspot"/>
</Keyframes>
</Parameter>
</Attribute>
</Attributes>
</Callout>
</Medias>
</Tracks>
</GenericMixer>
</Timeline>
</Project>
</GoProject>
</CSMLData>
</Root>
Есть несколько детей типа Keyframes внутри параметра, но только один Keyframe внутри Keyframes для каждого.
Это стиль-лист:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!-- Strip IMFile elements -->
<xsl:template match="Callout[descendant::Keyframe/@value='Transparent Hotspot']"/>
</xsl:stylesheet>
Результат должен удалить родительский Выноска и все его дети, так что все внутри Выноска, если условие выполняется должны быть удалены.
Пожалуйста, разместите правильно сформированный пример входного XML, а также ожидаемый результат - см. [Mcve]. –
Я проверил ваши источники используя _xsltransform.net_ с движком _Xalan_, и он работает нормально. Еще одно замечание: Добавить _ _. В противном случае тег _Root_ находится в одной строке с _ _ строка. Или используйте _ _ для устранения _ _. –
Действительно ли ваш фактический XML получил на нем декларацию пространства имен по умолчанию, случайно? i.e имеет ли он 'xmlns =" ... "' на корневом элементе? –