On Thu, 2004-02-19 at 03:28, tsterlin(_at_)email(_dot_)arizona(_dot_)edu wrote:
Hello,
I'm attempting to produce an HTML document from an XML one using XSLT.
I need to make a numbered list of a certain tag's
Elements.
(<ITEM>) info contained within the XML document. This challenge here
is that I only want certain <ITEM>s to be contained in my list while
others should be omitted, however all <ITEM>s have the same ancestry.
The only distinguishing element is a sibling tag known as <TITLE> with
different literal values stored in them. It is the value stored in
this <TITLE> that needs to determine the <ITEM>'s inclusion to or
exclusion from the list:
<xsl:template match="GROUP">
<ol>
<xsl:apply-templates/>
</ol>
</xsl:template>
<xsl:template match="ITEM">
<xsl:if test="parent::STEP1/preceding-sibling::TITLE!='Raging River'">
<li>
<xsl:apply-templates/>
</li>
</xsl:if>
</xsl:template>
<xsl:template match="TITLE"/>
If you want the test to match a list of values instead of exclude a
single value, use
<xsl:template match="ITEM">
<xsl:variable name="title"
select="parent::STEP1/preceding-sibling::TITLE"/>
<xsl:if test="$title='Magic Mountains' or
$title='Spectacular Sky'">
<li>
<xsl:apply-templates/>
</li>
</xsl:if>
</xsl:template>
///Peter
<GROUP>
<PARA0>
<TITLE>Magic Mountains</TITLE>
<STEP1>
<ITEM>This is the first item.</ITEM>
</STEP1>
<STEP1>
<ITEM>This is the second item.</ITEM>
</STEP1>
</PARA0>
<PARA0>
<TITLE>Raging River</TITLE>
<STEP1>
<ITEM>I don't want this item.</ITEM>
</STEP1>
<STEP1>
<ITEM>I don't want this item either.</ITEM>
</STEP>
</PARA0>
<PARA0>
<TITLE>Spectacular Sky</TITLE>
<STEP1>
<ITEM>This is the third item.</ITEM>
</STEP1>
<STEP1>
<ITEM>This is the fourth item.</ITEM>
</STEP1>
</PARA0>
</GROUP>
---------------The HTML output should be as follows:
1. This is the first item.
2. This is the second item.
3. This is the third item.
4. This is the fouth item.
Any ideas?
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list