xsl-list
[Top] [All Lists]

[xsl] Weired Result of XSLT

2007-05-21 23:43:19
Dear Lists-
Thanks in advance as I get all solutions of my problems by this lists only. Today I am hang-up in a weired problem as I am not able to find out the problem in xslt. Please let me know what is wrong in the xslt.

Command line
java -jar saxon8.jar a.xml b.xsl >c.xml

INPUT
<article article-type="review-article">
<contrib-group>
<contrib>
<name>
<surname>aaaaa</surname>
<given-names>xxxx</given-names>
</name>
</contrib>
<contrib>
<name>
<surname>bbbb</surname>
<given-names>yyyy</given-names>
</name>
</contrib>
</contrib-group>
</article>

XSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="2.0">
        <xsl:output method="xml" indent="yes"/>
        <xsl:template match="/">
                <head>
                        <xsl:apply-templates select="//contrib-group"/>
                </head>
        </xsl:template>

        <xsl:template match="//contrib-group">
                <contributors>
                        <xsl:apply-templates/>
                </contributors>
        </xsl:template>

        <xsl:template match="contrib">
                <xsl:if test="position()=1">
                        <person_name sequence="first" contributor_role="author">
                                <xsl:apply-templates select="name"/>
                        </person_name>
                </xsl:if>
                <xsl:if test="position()&gt;1">
                        <person_name sequence="additional" 
contributor_role="author">
                                <xsl:apply-templates select="name"/>
                        </person_name>
                </xsl:if>
        </xsl:template>

        <xsl:template match="contrib-group/contrib/name">
                <xsl:if test="given-names">
                        <given_name>
                                <xsl:apply-templates select="given-names"/>
                        </given_name>
                </xsl:if>
                <surname>
                        <xsl:apply-templates select="surname"/>
                </surname>
                <xsl:if test="suffix">
                        <suffix>
                                <xsl:apply-templates select="suffix"/>
                        </suffix>
                </xsl:if>
        </xsl:template>
</xsl:stylesheet>

OUTPUT
<?xml version="1.0" encoding="UTF-8"?>
<head xmlns:xs="http://www.w3.org/2001/XMLSchema";
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <contributors>
      <person_name sequence="additional" contributor_role="author">
         <given_name>xxxx</given_name>
         <surname>aaaaa</surname>
      </person_name>
      <person_name sequence="additional" contributor_role="author">
         <given_name>yyyy</given_name>
         <surname>bbbb</surname>
      </person_name>
   </contributors>
</head>

Desired Output
<?xml version="1.0" encoding="UTF-8"?>
<head xmlns:xs="http://www.w3.org/2001/XMLSchema";
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <contributors>
      <person_name sequence="first" contributor_role="author">
         <given_name>xxxx</given_name>
         <surname>aaaaa</surname>
      </person_name>
      <person_name sequence="additional" contributor_role="author">
         <given_name>yyyy</given_name>
         <surname>bbbb</surname>
      </person_name>
   </contributors>
</head>


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>