[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: eliminating multiple repeated tags in my XML

Subject: RE: eliminating multiple repeated tags in my XML
From: "Cindy Maisannes" <Cindy.Maisannes@xxxxxxxxxxxxxxxx>
Date: Mon, 10 Mar 2008 14:15:19 -0400
RE:  eliminating multiple repeated tags in my XML
Hi David -- thanks for your help with this.  Unfortunately, it's still
not working for me.  There are other elements in my source at this
level, so I'm using the code that you first posted (with copy-of
substituted in for the original value-of).  My XML (with a bit more
context) looks like:

<article><front><article-meta>
[...other related-article siblings...]
<related-article related-article-type="original-article">
	<person-group person-group-type="author">
		<name>
			<surname>Surname1</surname>
			<given-names>GivenName1</given-names>
		</name>
	</person-group>
</related-article>
<related-article related-article-type="original-article">
	<person-group person-group-type="author">
		<name>
			<surname>Surname2</surname>
			<given-names>GivenName2</given-names>
		</name>
	</person-group>
</related-article>
<related-article related-article-type="original-article">
	<person-group person-group-type="author">
		<name>
			<surname>Surname3</surname>
			<given-names>GivenName3</given-names>
		</name>
	</person-group>
	<article-title>Blah</article-title>
	<source>etc.</source>
</related-article>
[...other related-article siblings...]
</article-meta> etc.


And my XSLT in its entirety at this point is stripped down to:


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">

    <xsl:import href="../styles/iso8879/iso8879map.xsl"/>

    <xsl:output method="xml" doctype-system="archivearticle.dtd"
encoding="utf-8" indent="no" use-character-maps="iso8879"/>

    <xsl:template

match="/article/front/article-meta/related-article[@related-article-type
='original-article']">
        <related-article related-article-type="original-article">
         <xsl:for-each-group select="*"
group-adjacent="exists(self::related-article[@related-article-type='orig
inal-article'])">
                <xsl:choose>
                    <xsl:when test="current-grouping-key()">
                        <related-article
related-article-type="original-article">
                            <xsl:copy-of select="current-group()"/>
                        </related-article>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:copy-of select="current-group()"/>
                    </xsl:otherwise>
                </xsl:choose>
         </xsl:for-each-group>
        </related-article>
     </xsl:template>

    <xsl:template match="@*|node()">
        <xsl:copy copy-namespaces="no" inherit-namespaces="no">
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

</xsl:stylesheet>


...which continues to produce multiple <related-article>s.  When I run
the XSLT debugger in oXygen, I notice that it gets to the <xsl:choose>
and never matches on the <xsl:when>, only the <xsl:otherwise>.  I'm not
seeing what's wrong here, however.

Thanks again!



-----Original Message-----
From: David Carlisle [mailto:davidc@xxxxxxxxx]
Sent: Friday, March 07, 2008 7:19 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  eliminating multiple repeated tags in my XML


you've still not shown if there is anything other than these elements in
your source at this level. if so, use the code that I posted (except
replace value-of by copy-of since your related-article elements (now)
have structured content.

If on the other hand what you posted is all there is as the child of
some element, you don't need to group anything, just use
<related-article>
  <xsl:copy-of select="related-article/(@*,node())"/>
</related-article>


David

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2011 All Rights Reserved.