[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] Finding wanted nodes in complex document
Subject: [xsl] Finding wanted nodes in complex document From: Geoff <ghank@xxxxxxxxxxx> Date: 11 Oct 2002 10:04:02 -0500 |
I have a big,complicate, messy xml document (originally a Mozilla bookmark file that I made into well-formed xml) that I wish to transform into a lean, mean and clean xml document and I am having some trouble. Here is part of the document: <?xml version="1.0" encoding="UTF-8"?> <bookmarks> <DT> <H3 ADD_DATE="1032875519" ID="NC:BookmarksRoot#$f68320c5" LAST_MODIFIED="1033072101">Consumer Guides</H3> </DT> <DL> <p/> <DT> <H3 ADD_DATE="1032876491" ID="NC:BookmarksRoot#$f68320c6">Alabama</H3> </DT> <DL> <p/> </DL> <p/> <DT> <H3 ADD_DATE="1032876720" ID="NC:BookmarksRoot#$f68320dc" LAST_MODIFIED="1033071828">Minnesota</H3> </DT> <DL> <p/> <DT> <H3 ADD_DATE="1033068848" ID="NC:BookmarksRoot#$c0ebfb0" LAST_MODIFIED="1033077022">Alternative Dispute Resolution</H3> </DT> <DL> <p/> <DT> <H3 ADD_DATE="1032902327" ID="NC:BookmarksRoot#$f6832141" LAST_MODIFIED="1033077446">Mediation</H3> </DT> <DL> <p/> <DT> <A ADD_DATE="1033077149" HREF="http://www.co.hennepin.mn.us/courts/ConcCt/ccmediation.htm" LAST_CHARSET="ISO-8859-1" LAST_MODIFIED="1033077270">Mediation in Conciliation Court [From the Hennepin County District Court]</A> </DT> </DL> <p/> <DT> <A ADD_DATE="1033076751" HREF="http://www.courts.state.mn.us/adr/adr_info.htm" LAST_CHARSET="ISO-8859-1" LAST_MODIFIED="1033076778">Minnesota Alternative Dispute Resolution [From the Judicial System]</A> </DT> <DT> <A ADD_DATE="1033076913" HREF="http://www.co.hennepin.mn.us/courts/Arbitration/arbmain.htm" LAST_CHARSET="ISO-8859-1" LAST_MODIFIED="1033076983" LAST_VISIT="1033077513">What You Need to Know About Arbitration [From the Hennepin County District Court]</A> </DT> </DL> <p/> <DT> <H3 ADD_DATE="1033068848" ID="NC:BookmarksRoot#$c0ebfb2" LAST_MODIFIED="1033070120">Bankruptcy</H3> </DT> <DL> <p/> </DL> <p/> <DT> <H3 ADD_DATE="1033068848" ID="NC:BookmarksRoot#$c0ebfb3" LAST_MODIFIED="1033068848">Business Law</H3> </DT> <DL> <p/> <DT> <H3 ADD_DATE="1032901666" ID="NC:BookmarksRoot#$f683211c" LAST_MODIFIED="1033076330">Corporations</H3> </DT> <DL> <p/> <DT> <A ADD_DATE="1033076119" HREF="http://www.state.mn.us/ebranch/mdor/collect/forms/bsl.pdf" LAST_CHARSET="ISO-8859-1" LAST_MODIFIED="1033076308">Business Successor Liability Fact Sheet [Department of Revenue]</A> </DT> <DT> <A ADD_DATE="1033076116" HREF="http://www.state.mn.us/ebranch/mdor/misc/pubs/busentities.pdf" LAST_CHARSET="ISO-8859-1" LAST_MODIFIED="1033076316">Business Entities: An Overview [Department of Revenue]</A> </DT> </DL> <p/> <DT> <H3 ADD_DATE="1032902430" ID="NC:BookmarksRoot#$f6832148" LAST_MODIFIED="1033072438">Nonprofit Corporations*</H3> </DT> <DL> <p/> <DT> <A ADD_DATE="1033072239" HREF="http://www.ag.state.mn.us/charities/charDuties.html" LAST_CHARSET="ISO-8859-1" LAST_MODIFIED="1033072409">Fiduciary Duties of Directors of Charitable Organizations: A Guide for Board Members [From the Attorney General's Office]</A> </DT> <DD> This guide helps directors understand their responsibilities as stewards of their organizations. In carrying out their responsibilities, the law imposes on directors the fiduciary duties of care, loyalty and obedience to the law. These duties are more generally described in this guide.</DD> <DT> <A ADD_DATE="1033072224" HREF="http://www.ag.state.mn.us/charities/Default.htm#New Resources" LAST_CHARSET="ISO-8859-1" LAST_MODIFIED="1033072289">New Resources For Nonprofits: Sample Policies [From the Attorney General's Office]</A> </DT> <DD>The Attorney General's Office offers these sample policies for nonprofits to consider when developing policies to govern their operations and the conduct of board members, officers, directors and employees. The policies are offered as guides, and are not meant to prescribe the exact manner that nonprofits, officers, directors or employees must act in all situations.</DD> </DL> <p/> </DL> ................................... OK I told you it was messy. So first I want to get all the "categories" which I do like this: <xsl:for-each select="bookmarks/DL/DL/DT/H3"> <category> <xsl:attribute name="name"> <xsl:value-of select="."/> </xsl:attribute> </category> </xsl:for-each> This gives me a nice clean document like this: <category name="Alternative Dispute Resolution"/> <category name="Bankruptcy"/> <category name="Business Law"/> <category name="Charities"/> <category name="Civil Rights Law"/> <category name="Courts"/> <category name="Consumer Law"/> <category name="Contracts"/> etc.... Now I want to get the "subcategories" related to the "categories" which are at "bookmarks/DL/DL/DL/DT/H3" or "../../DL/DT/H3" when compared to the "category" node. So what I want is something like this: <category name="Alternative Dispute Resolution"> <subcat name="Mediation"/> </category> <category name="Bankruptcy"/> <category name="Business Law"> <subcat name="Corporations"/> </category> I am attempting to do this like this: <xsl:for-each select="bookmarks/DL/DL/DT/H3"> <category> <xsl:attribute name="name"> <xsl:value-of select="."/> </xsl:attribute> <subcat> <xsl:attribute name="name"> <xsl:value-of select="../../DL/DT/H3"/> </xsl:attribute> </subcat> </category> </xsl:for-each> But this produces this: <category name="Alternative Dispute Resolution"> <subcat name="Mediation"/> </category> <category name="Bankruptcy"> <subcat name="Mediation"/> </category> <category name="Business Law"> <subcat name="Mediation"/> </category> <category name="Charities"> <subcat name="Mediation"/> </category> What am I doing wrong?? XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XML Schema validation que, Richard Lander | Thread | Re: [xsl] Finding wanted nodes in c, Joerg Heinicke |
[xsl] XML Schema validation questio, Zakon, Stuart | Date | RE: [xsl] XML Schema validation que, Richard Lander |
Month |
Keywords