[xsl] Flat file to hierarchy?

Subject: [xsl] Flat file to hierarchy?
From: "Denny, Allison M. (LNG-CIS)" <allison.denny@xxxxxxxxxxxxxx>
Date: Mon, 10 Jun 2002 15:37:57 -0400
Hello,

I have a flat file that needs to get turned into a hierarchy based on the
content of a certain element.  

If the content of the element is P, a top level element should be created.
If content is C, second level; A third level.  Each content=P restarts the
leveling process--ie, each A or C will only be a child of the immediate
previous P.  As and Cs can follow Ps in any order, but if As follow a C they
are a child of that C until another C or P occurs.  (Please see the sample
data below.)

The answer must be recursion, but could anyone help show me how to generate
this?  In a flat file I'm not sure how to test so that As and Cs will be
children only of the immediately preceding P. 

Thanks in advance,
Allison Denny

Sample input:
<RECORDS>
	<RECORD>
		<F1>P</F1>
		<F2>21142</F2>
		<F3>19300</F3>
		<F4>Congressional Committees</F4>
	</RECORD>
	<RECORD>
		<F1>C</F1>
		<F2>26102</F2>
		<F3>19400</F3>
		<F4>General Accounting Office</F4>
	</RECORD>
	<RECORD>
		<F1>A</F1>
		<F2>26104</F2>
		<F3>19400</F3>
		<F4/>
		<F5>GAO/OIMC/OPA-00-1A</F5>
		<F6>26104-17.1</F6>
		<F7>L</F7>
	</RECORD>
	<RECORD>
		<F1>A</F1>
		<F2>26104</F2>
		<F3>19400</F3>
		<F4/>
		<F5>GAO/OIMC/OPA-00-1B</F5>
		<F6>26104-17.2</F6>
		<F7>L</F7>
	</RECORD>
	<RECORD>
		<F1>P</F1>
		<F2>17632</F2>
		<F3>18000</F3>
		<F4>U.S. National Alcohols Fuels Commission</F4>
	</RECORD>
</RECORDS>

Sample output:
<SUDOC-INDEX>
	<AGENCY-GROUP>
		<AGENCY-GROUP-HEAD>Congressional
Committees</AGENCY-GROUP-HEAD>
		<AGENCY-GROUP-LEVEL-TWO>
			<AGENCY-LEVEL-TWO-HEAD>General Accounting
Office</AGENCY-LEVEL-TWO-HEAD>
			<AGENCY-RPT-NO-ENTRY>
	
<AGENCY-RPT-NO>GAO/OIMC/OPA-00-1A</AGENCY-RPT-NO>
				<ACCESSION-NO-GROUP>
					<ISSUE-NUMBER>L</ISSUE-NUMBER>
	
<ACCESSION-NO>26104-17.1</ACCESSION-NO>
				</ACCESSION-NO-GROUP>
			</AGENCY-RPT-NO-ENTRY>
			<AGENCY-RPT-NO-ENTRY>
	
<AGENCY-RPT-NO>GAO/OIMC/OPA-00-1B</AGENCY-RPT-NO>
				<ACCESSION-NO-GROUP>
					<ISSUE-NUMBER>L</ISSUE-NUMBER>
	
<ACCESSION-NO>26104-17.2</ACCESSION-NO>
				</ACCESSION-NO-GROUP>
			</AGENCY-RPT-NO-ENTRY>
		</AGENCY-GROUP-LEVEL-TWO>
	</AGENCY-GROUP>
	<AGENCY-GROUP>
		<AGENCY-GROUP-HEAD>U.S. National Alcohols Fuels
Commission</AGENCY-GROUP-HEAD>
		Etc...
</SUDOC-INDEX>

Allison Denny
Data Analyst
4520 East-West Highway
Bethesda, MD  20814
Tel: 240.497.4015

LexisNexis
It's how you know 


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


Current Thread