David,
This is where you code is broken:
At 05:14 PM 11/11/2003, you wrote:
<xsl:if test="position() mod 2 = '0'">
</topgroup>
<topgroup>
</xsl:if>
This is not well-formed XML. The parser is seeing the </topgroup> end tag
here; its error message is complaining that it's the wrong end tag. The
only end tag allowed where you have "</topgroup>" is </xsl:if>.
So, you ask, what do I do if I can't "close" an element and "open" another
one? Hint: XSLT is not a set of string-writing routines, and it doesn't
work by writing tags to the output. Instead, it builds trees. Instead of
<xsl:template match="/">
<topgroup>
<xsl:for-each select="//WorkOrder/lineService">
<TEABTN>
<NPA><xsl:value-of
select="normalize-space(tpExistAcctBillTelNo/npa)"/></NPA>
<NXX><xsl:value-of
select="normalize-space(tpExistAcctBillTelNo/nxx)"/></NXX>
<XXXX><xsl:value-of
select="normalize-space(tpExistAcctBillTelNo/xxxx)"/></XXXX>
</TEABTN>
<xsl:if test="position() mod 2 = '0'">
</topgroup>
<topgroup>
</xsl:if>
</xsl:for-each>
</topgroup>
</xsl:template>
you want something like
<xsl:template match="/">
<xsl:for-each select="//WorkOrder/lineService[position() mod 2 = 1]">
<topgroup>
<xsl:for-each select=".|following-sibling::lineService[1]">
<TEABTN>
<NPA><xsl:value-of
select="normalize-space(tpExistAcctBillTelNo/npa)"/></NPA>
<NXX><xsl:value-of
select="normalize-space(tpExistAcctBillTelNo/nxx)"/></NXX>
<XXXX><xsl:value-of
select="normalize-space(tpExistAcctBillTelNo/xxxx)"/></XXXX>
</TEABTN>
</topgroup>
</xsl:for-each>
</xsl:template>
The difference between this and what you had is that it specifies a set of
*nodes* to be added to the result *tree* -- not just write a bunch of tags
(which hopefully will parse). Not incidentally, the stylesheet template
itself is well-formed XML, and will parse.
It's completely different from, say, the way Javascript writes HTML tagging
to browser windows.
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list