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>