У меня есть два простых шаблона, перечисленных ниже, которые работают с некоторыми примерами данных, также перечисленными ниже:
<?xml version="1.0" encoding="utf-8?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8"/>
<xsl:template match="Gallery/Tab/ImageGroup/Image">
<xsl:apply-templates select="imageText" />
</xsl:template>
<xsl:template match="imageText">
<h2><xsl:value-of select="." /></h2>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<Gallery name="My Gallery">
<Tab tabID="imageDivTab0" height="500" name="Team Wear">
<ImageGroup>
<Image>
<imageName>Challenge-Badge.jpg</imageName>
<imageURL>images/gallery/small/Tab1/</imageURL>
<imageText>Challenge Badge</imageText>
</Image>
</ImageGroup>
</Tab>
</Gallery>
Когда процессор работает, я получаю ожидаемый результат (отображается imageText), если я закомментирую первый шаблонполучить все отображаемое (imageName, imageURL и текст изображения).
Это потому, что второй шаблон пытается сопоставить 'imageText' без надлежащего контекста, то есть использует корневой узел, поэтому он отображает все.
Я довольно новичок в этом, поэтому любая помощь будет высоко ценится.
Приветствия