This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
4000 nodes?
- From: Mike Ferrando <mikeferrando at yahoo dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Fri, 15 Mar 2002 12:02:13 -0800 (PST)
- Subject: [xsl] 4000 nodes?
- Reply-to: xsl-list at lists dot mulberrytech dot com
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