У меня есть XML-файл, который мне нужно преобразовать с помощью XSLT.В моем файле XSLT я делаю несколько вещей с файлом XML.Я сначала копирую все элементы;тогда я переименую некоторые элементы.Наконец, мне нужно удалить для вывода все dealer-code element
, у которых dealer-code-name
равно 0. Первые 2 части, которые у меня работают, но я пробовал каждый фрагмент кода, который нашел в Интернете, и не могу удалить этиоскорбительные dealer-code
элементы.Я новичок в XSLT, поэтому, возможно, я все делаю неправильно;любая помощь будет оценена.
Частичный код XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="xmlstructure.xsl"?>
<AdBaseData>
<AdBasePreprintInfo FromDistribute="true">
<PreprintInsert>
<Sides>2</Sides>
<PageCount>2</PageCount>
<InsertSchedule>
<AdLocInfo>
<rundates>
<date>12042010</date>
</rundates>
</AdLocInfo>
<invoice-text>South Plaza - Stalker Advertisin</invoice-text>
<BillingOverride Type="Subscriber">49996</BillingOverride>
<deal-code0>
<dealer-code-name>A20</dealer-code-name>
<Delivery-Method Type="Subscriber">
<Selected>true</Selected>
</Delivery-Method>
</deal-code0>
<deal-code1>
<dealer-code-name>0</dealer-code-name>
<Delivery-Method Type="Subscriber">
<Selected>true</Selected>
</Delivery-Method>
</deal-code1>
</InsertSchedule>
</PreprintInsert>
Мой xslt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[starts-with(name(), 'deal-code')]">
<xsl:element name="dealer-code">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="dealer-code[@dealer-code-name='0']">
</xsl:template>
</xsl:stylesheet>
Переименование deal-code
вdealer-code
работает.Тем не менее, последняя часть не выводит dealer-code-name
со значением 0 не делает.Мой полученный XML-файл все еще содержит список всех элементов dealer-code
.