[xsl] 4000 nodes?

Subject: [xsl] 4000 nodes?
From: Mike Ferrando <mikeferrando@xxxxxxxxx>
Date: Fri, 15 Mar 2002 12:02:13 -0800 (PST)
Dear Friends,
I am trying to figure out why I am getting alot of repeating nodes.
Could someone point out my error. 

What I am trying to get is all the C1011 nodes.

1. If C1011 not nested in C1012, then C1011 node.
2. If C1011 is nested in C1012, then TITLE and C1011.

I include a C1012 node, my XSL and my Schema.

Mike F.


XML:===================
<SONG><SCORE><C1012><TITLE>Opening act II</TITLE> <C1011>see  The
farmer and the cowman</C1011></C1012></SCORE></SONG>

XSL:===================
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet   version="1.0"  
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output version="1.0" method="xml" indent="yes" encoding="utf-8"
omit-xml-declaration="no" standalone="no" media-type="text/xml"/>

  <xsl:template match="/">
    <xsl:for-each select="//SHOW">
      <xsl:element name="C03">
        <xsl:attribute name="LEVEL">collection</xsl:attribute>
          <xsl:apply-templates select="C1001"/>
          <xsl:apply-templates select="SONG"/>
      </xsl:element>  
    </xsl:for-each>
  </xsl:template>

<xsl:template match="C1011">
  <xsl:apply-templates select="//C1011"/>
</xsl:template>

<xsl:template match="SONG">
    <xsl:apply-templates select="SCORE"/>
    <xsl:apply-templates select="SKETCH"/>
    <xsl:apply-templates select="MMUSIC"/>
    <xsl:apply-templates select="MSCSCORE"/>
</xsl:template>


<xsl:template match="SCORE">
  <xsl:apply-templates select="C1012"/>
  <xsl:apply-templates select="C1011"/>
</xsl:template>

<xsl:template match="SKETCH">
  <xsl:apply-templates select="//C1011"/>
</xsl:template>

<xsl:template match="MSCSCORE">
  <xsl:apply-templates select="//C1011"/>
</xsl:template>

<xsl:template match="MMUSIC">
  <xsl:apply-templates select="//C1011"/>
</xsl:template>

<xsl:template match="TITLE">
</xsl:template>

<xsl:template match="C1001">
  <xsl:apply-templates select="//C1011"/>
</xsl:template>

<xsl:template match="C1011xxx">
  <C1011>
    <xsl:copy-of select="concat(' ** ', node(), ' *in* ',
ancestor::SHOW/C1001/TITLE, ' *root* ', name(/*))"/>
  </C1011>
</xsl:template>

<xsl:template match="C1012xxx">
  <xsl:apply-templates select="TITLE"/>
    <C1011>
      <xsl:copy-of select="concat(ancestor::SCORE/C1012/TITLE, ' **
', node(), ' *in* ', ancestor::SHOW/C1001/TITLE, ' *root* ',
name(/*))"/>
    </C1011>
</xsl:template>

<xsl:template match="C1011">
  <xsl:choose>
    <xsl:when test="contains(., '  [')">
    </xsl:when>
    <xsl:otherwise>
      <C1011>
        <xsl:copy-of select="concat(node(), ' *in* ',
ancestor::SHOW/C1001/TITLE, ' *root* ', name(/*))"/>
      </C1011>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<xsl:template match="C1012">
    <xsl:for-each select="C1011">
      <xsl:choose>
        <xsl:when test="contains(., '  [')">
        </xsl:when>
        <xsl:otherwise>
          <C1011>
            <xsl:copy-of select="concat(ancestor::SCORE/C1012/TITLE,
' ** ', node(), ' *in* ', ancestor::SHOW/C1001/TITLE, ' *root* ',
name(/*))"/>
          </C1011>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

SCHEMA:================
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE schema>
<schema>
   <element name="RODGERS1" occurs="1">
      <element name="SHOW" occurs="85">
         <element name="C1001" occurs="85">
            <element name="TITLE" occurs="86"/>
            <element name="UNITDATE" occurs="101"/>
            <element name="PERSNAME" occurs="78"/>
            <element name="C1011" occurs="5"/>
            <element name="C1007" occurs="4">
               <element name="TITLE" occurs="2"/>
               <element name="PERSNAME" occurs="2"/>
               <element name="CORPNAME" occurs="1"/>
            </element>
         </element>
         <element name="SONG" occurs="779">
            <element name="C1002" occurs="592"/>
            <element name="SCORE" occurs="875">
               <element name="C1003" occurs="735"/>
               <element name="C1004" occurs="735">
                  <element name="DATE" occurs="1"/>
                  <element name="EMPH" occurs="16"/>
               </element>
               <element name="C1005" occurs="735"/>
               <element name="C1007" occurs="234">
                  <element name="DATE" occurs="19"/>
                  <element name="CORPNAME" occurs="3"/>
                  <element name="TITLE" occurs="123">
                     <element name="EMPH" occurs="3"/>
                  </element>
                  <element name="GEOGNAME" occurs="4"/>
                  <element name="PERSNAME" occurs="6"/>
               </element>
               <element name="C1006" occurs="299">
                  <element name="TITLE" occurs="2"/>
                  <element name="PERSNAME" occurs="2"/>
               </element>
               <element name="C1012" occurs="140">
                  <element name="TITLE" occurs="140"/>
                  <element name="C1011" occurs="160"/>
               </element>
               <element name="C1009" occurs="13">
                  <element name="HEAD" occurs="13"/>
                  <element name="ITEM" occurs="48">
                     <element name="TITLE" occurs="48"/>
                     <element name="C1007" occurs="2">
                        <element name="TITLE" occurs="3"/>
                        <element name="CORPNAME" occurs="1"/>
                     </element>
                  </element>
               </element>
               <element name="C1011" occurs="42"/>
               <element name="C1010" occurs="32">
                  <element name="PERSNAME" occurs="32"/>
               </element>
            </element>
            <element name="SKETCH" occurs="67">
               <element name="C1003" occurs="67"/>
               <element name="C1008" occurs="67">
                  <element name="TITLE" occurs="67"/>
                  <element name="UNITDATE" occurs="1"/>
               </element>
               <element name="C1005" occurs="67">
                  <element name="PERSNAME" occurs="1"/>
               </element>
               <element name="C1009" occurs="62">
                  <element name="HEAD" occurs="62"/>
                  <element name="ITEM" occurs="355">
                     <element name="TITLE" occurs="246">
                        <element name="EMPH" occurs="1"/>
                     </element>
                     <element name="LIST" occurs="109">
                        <element name="HEAD" occurs="109"/>
                        <element name="ITEM" occurs="262">
                           <element name="TITLE" occurs="262">
                              <element name="EMPH" occurs="1"/>
                           </element>
                           <element name="C1007" occurs="26">
                              <element name="PERSNAME" occurs="1"/>
                              <element name="TITLE" occurs="29"/>
                              <element name="DATE" occurs="1"/>
                           </element>
                           <element name="C1010" occurs="1">
                              <element name="PERSNAME" occurs="2"/>
                           </element>
                           <element name="C1011" occurs="2"/>
                        </element>
                     </element>
                     <element name="C1007" occurs="13">
                        <element name="TITLE" occurs="10"/>
                        <element name="DATE" occurs="2"/>
                        <element name="CORPNAME" occurs="1"/>
                        <element name="SUBJECT" occurs="2"/>
                     </element>
                     <element name="C1011" occurs="2"/>
                  </element>
               </element>
               <element name="C1007" occurs="4">
                  <element name="TITLE" occurs="3"/>
                  <element name="DATE" occurs="1"/>
               </element>
               <element name="C1010" occurs="2">
                  <element name="PERSNAME" occurs="2"/>
               </element>
               <element name="C1006" occurs="1"/>
            </element>
            <element name="MMUSIC" occurs="15">
               <element name="C1003" occurs="15"/>
               <element name="C1008" occurs="15">
                  <element name="TITLE" occurs="9"/>
                  <element name="UNITDATE" occurs="6"/>
                  <element name="PERSNAME" occurs="3"/>
                  <element name="CORPNAME" occurs="3"/>
                  <element name="GEOGNAME" occurs="1"/>
               </element>
               <element name="C1005" occurs="15">
                  <element name="TITLE" occurs="1"/>
               </element>
               <element name="C1009" occurs="1">
                  <element name="HEAD" occurs="1"/>
                  <element name="ITEM" occurs="4">
                     <element name="TITLE" occurs="4"/>
                  </element>
               </element>
               <element name="C1011" occurs="1"/>
               <element name="C1007" occurs="1">
                  <element name="TITLE" occurs="1"/>
               </element>
            </element>
         </element>
      </element>
   </element>
</schema>

__________________________________________________
Do You Yahoo!?
Yahoo! Sports - live college hoops coverage
http://sports.yahoo.com/

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread