Я приложил XML-файл, и я хочу скопировать только тот узел, значение атрибута которого является чем-то, в моем случае AHC_. В каждом узле любой атрибут имеет значение, начинающееся с «AHC_», копирует этот узел и игнорирует другие узлы.XSL-копии узлов на основе значения атрибута (как и поиск)
Я пытаюсь выполнить следующие XSL и условие работает, но не копирует узел. Не могли бы вы взглянуть и предложить?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="UTF-8" indent="yes" method="xml"/>
<xsl:strip-space elements="*"/>
<xsl:template match="Schedules">
<xsl:if test="Schedule[@ServiceName='MESAVisToolkit_RetentionProcessor']">
<xsl:apply-templates select="@*|node()"/>
</xsl:if>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Пример XML:
<?xml version="1.0" encoding="UTF-8"?>
<Schedules>
<Schedule OrganizationKey=" " ScheduleID="13" ServiceName="RetentionProcessor">
<TimingXML>
<days>
<day ofWeek="-1">
<times>
<time>0200</time>
</times>
</day>
</days>
<excludedDates/>
</TimingXML>
</Schedule>
<Schedule OrganizationKey=" " ScheduleID="14" ServiceName="MESAVisToolkit_RetentionProcessor">
<TimingXML>
<days>
<day ofWeek="-1">
<times>
<time>0300</time>
</times>
</day>
</days>
</TimingXML>
</Schedule>
<Schedule OrganizationKey=" " ScheduleID="15" ServiceName="MailboxEvaluateAllAutomaticRules">
<TimingXML>
<days>
<day ofWeek="-1">
<times>
<timeRange>
<range>0000-2359</range>
<interval>1</interval>
<onMinute>0</onMinute>
</timeRange>
</times>
</day>
</days>
<excludedDates/>
</TimingXML>
</Schedule>
<Schedule OrganizationKey=" " ScheduleID="16" ServiceName="MailboxEvaluateAllAutomaticRulesSubMin">
<TimingXML>
<days>
<day ofWeek="-1">
<times>
<timeRange>
<range>0000-2359</range>
<interval>1</interval>
<onMinute>0</onMinute>
</timeRange>
</times>
</day>
</days>
</TimingXML>
</Schedule>
<Schedule OrganizationKey=" " ScheduleID="51" ServiceName="AHC_001_01_0100_Get_Schedule">
<TimingXML>
<days>
<day ofWeek="-1">
<times>
<timeRange>
<range>0000-2359</range>
<interval>5</interval>
<onMinute>0</onMinute>
</timeRange>
</times>
</day>
</days>
</TimingXML>
</Schedule>
<Schedule OrganizationKey=" " ScheduleID="54" ServiceName="AHC_001_01_0200_Get_Schedule">
<TimingXML>
<days>
<day ofWeek="-1">
<times>
<timeRange>
<range>0000-2359</range>
<interval>5</interval>
<onMinute>0</onMinute>
</timeRange>
</times>
</day>
</days>
</TimingXML>
</Schedule>
</Schedules>
Ожидаемый результат:
<?xml version="1.0" encoding="UTF-8"?>
<Schedule OrganizationKey=" " ScheduleID="51" ServiceName="AHC_001_01_0100_Get_Schedule">
<TimingXML>
<days>
<day ofWeek="-1">
<times>
<timeRange>
<range>0000-2359</range>
<interval>5</interval>
<onMinute>0</onMinute>
</timeRange>
</times>
</day>
</days>
</TimingXML>
</Schedule>
<Schedule OrganizationKey=" " ScheduleID="54" ServiceName="AHC_001_01_0200_Get_Schedule">
<TimingXML>
<days>
<day ofWeek="-1">
<times>
<timeRange>
<range>0000-2359</range>
<interval>5</interval>
<onMinute>0</onMinute>
</timeRange>
</times>
</day>
</days>
</TimingXML>
</Schedule>
</Schedules>
Сво работают. Большое спасибо. – GSR