Я хочу проверить появление определенного текста. Ниже мой XSLT:Проверить возникновение XSLT
<?xml version="1.0"?>
<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="/">
<!-- Notify PANTONE - If YES -->
<xsl:if test="contains(xmlreport/PageInfo/PageAttribute/PageColor,'PANTONE')">
<PantonePage><note>Yes</note></PantonePage>
</xsl:if>
<!-- Notify PANTONE - If NO -->
<xsl:if test="not(contains(xmlreport/PageInfo/PageAttribute/PageColor,'PANTONE'))">
<PantonePage><note>No</note></PantonePage>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Мой выход желание должно быть:
<pantone>Yes</pantone>
или
<pantone>No</pantone>
В исходном XML, PANTONE может быть PANTONE Красный U, PANTONE Зеленый U. При тестировании вышеуказанного XSLT ответ всегда равен NO.
Ниже мой XML:
<?xml version="1.0" encoding="UTF-8"?>
<xmlreport>
<PageInfo>
<PageAttribute>
<PageNum>1</PageNum>
<TrimSize>
<H>220 mm</H>
<W>150 mm</W>
</TrimSize>
<MediaSize>
<H>225 mm</H>
<W>160 mm</W>
</MediaSize>
<PageColor>PANTONE Red U</PageColor>
</PageAttribute>
<PageAttribute>
<PageNum>2</PageNum>
<TrimSize>
<H>220 mm</H>
<W>150 mm</W>
</TrimSize>
<MediaSize>
<H>225 mm</H>
<W>160 mm</W>
</MediaSize>
<PageColor>Black</PageColor>
</PageAttribute>
<PageAttribute>
<PageNum>3</PageNum>
<TrimSize>
<H>220 mm</H>
<W>150 mm</W>
</TrimSize>
<MediaSize>
<H>225 mm</H>
<W>160 mm</W>
</MediaSize>
<PageColor>Cyan Magenta Yellow Black</PageColor>
</PageAttribute>
<PageInfo>
<xmlreport>
PageAttribute
будет повторяться в зависимости от количества страниц.
Вы можете оставить XML, пожалуйста, для соответствующего XPATH ? Он работает для меня с моим предполагаемым исходным XML, поэтому, возможно, есть атрибут или что-то, что мне не хватает. –
Привет @JasonW Я обновил свой XML. – smudgees
"* Параметр PageAttribute будет повторяться в зависимости от количества страниц. *« Очень плохо, что ваш пример не отражает этого, потому что это корень проблемы здесь. –