Мне нужно уметь удалить определенный родительский узел (и его дочерние элементы) в зависимости от атрибутов, содержащихся в дочернем элементе <version>
этого абзаца. Поэтому в приведенном ниже примере мне нужен XSLT, чтобы найти экземпляр <version version="ABCD">
и удалить все из родительского элемента <para0>
. Другими словами, я пытаюсь выполнить условную фильтрацию текста. Элементу, который должен соответствовать (и удалять), будет ВСЕГДА быть родителем <applic>
, но не всегда может быть <para0>
, как в примере, поэтому мне нужно как-то указать, что ему нужно сопоставить родительский элемент «apply», а не явным образом указываю para0.C# XSLT удалить родительский узел на основе атрибута childnode
Это должно быть яснее из примера. Мне нужно удалить все данные para0 с атрибутом версии ABCD.
Так это какой-то образец XML
<root>
<para0>
<applic>
<model>
<version version="ABCD"></version>
</model>
</applic>
<subpara1><title>First Title</title>
<para>Some text relating to ABCD configuration</para>
</subpara1>
<subpara1><title>Second Title</title>
<para>Some other text and stuff relating to ABCD configuration</para>
</subpara1>
</para0>
<para0>
<applic>
<model>
<version version="TRAINING"></version>
</model>
</applic>
<subpara1><title>First Title</title>
<para>Some text relating to TRAINING configuration</para>
</subpara1>
<subpara1><title>Second Title</title>
<para>Some other text and stuff relating to TRAINING configuration</para>
</subpara1>
</para0>
</root>
Вот это XSLT я до сих пор, но мне это нужно, когда соответствие с ABCD, в основном выбрать и удалить родительский «прилож» и все дочерние узлы.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method = "xml" indent="yes"/>
<xsl:strip-space elements = "*" />
<xsl:template match = "@*|node()" >
<xsl:copy>
<xsl:apply-templates select = "@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match = "//applic/model[@*]/version[@version='ABCD']" />
</xsl:stylesheet>
Возможный дубликат [Как использовать "не" в XPath?] (Http://stackoverflow.com/questions/1550981/how-to -use-not-in-xpath) –