[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] graph-traversal query
Subject: Re: [xsl] graph-traversal query From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Sat, 29 Jan 2005 09:33:26 +1100 |
Has been done a year ago and is not difficult to do in XSLT, See for example: http://lists.xml.org/archives/xml-dev/200401/msg00444.html Since then I have successfully developed other, more complex graph-theory algorithms like Eulerisation used in a "Chinese Postman"-like (The New York Street Sweeeper) algorithm. Cheers, Dimitre, On Fri, 28 Jan 2005 12:15:33 -0500, Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> wrote: > I've never solved the graph-traversal problem myself (that I can recall > ;-), though I know others on this list have. > > I'd be interested in hints that would suggest how: > > This could be implemented recursively, traversing (either 'up' or 'down') > until terminal nodes are found; > > Circular references would be detected (passing a set of 'already hit' > nodes as a > parameter?). > > Cheers, > Wendell > > At 10:25 AM 1/28/2005, Mike wrote: > >Ignoring the stuff about case-independence, define a key on the identifier > > > ><xsl:key name="k" match="DEFCONCEPT" use="@name"/> > > > >Find the logical parent using the key function: > > > >key("k", PARENT/CONCEPT/@name) > > > >or the grandparent by doing it twice: > > > >key("k", PARENT/CONCEPT/@name) / key("k", PARENT/CONCEPT/@name) > > > >That's XPath 2.0, in 1.0 you write > > > >key("k", key("k", PARENT/CONCEPT/@name)/PARENT/CONCEPT/@name) > > > >Since your data (unusually) represents relationships in both directions, you > >can also use the key to find the children > > > >key("k", CHILD/CONCEPT/@name) > > > >or grandchildren: > > > >key("k", CHILD/CONCEPT/@name) / key("k", CHILD/CONCEPT/@name) > > > >Michael Kay > >http://www.saxonica.com/ > > > > > > > -----Original Message----- > > > From: RQamar [mailto:qamar_rahil@xxxxxxxxxxx] > > > Sent: 28 January 2005 14:27 > > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > Subject: [xsl] graph-traversal query > > > > > > Hi > > > > > > This is a question I asked earlier on the forum and was advised by > > > Wendell to send it as a seperate query so I could get feedback from a > > > wider audience. > > > > > > I'm educating myself on XSLT and XPath but until the two books Ive > > > recently ordered arrive, I'd need some help from the experts > > > to help me > > > proceed. > > > > > > My query is thus: > > > > > > > Im finding the dynamic assigning and traversing process in > > > XSL quite > > > > confusing. Is there a logical way of traversing through a tree to > > > > determine the grandchild of an element albeit indirectly. So I know > > > > that my XML file is as below > > > > > > > > ----------------------- > > > > <DEFCONCEPT id="10180" name="Car"> > > > > <PARENT> > > > > <CONCEPT name="Automobile" ref="10181"/> > > > > </PARENT> > > > > <CHILD> > > > > <CONCEPT name="Toyota" ref="10235"/> > > > > </CHILD> > > > > </DEFCONCEPT > > > > > <DEFCONCEPT id="10235" name="Toyota"> > > > > <PARENT> > > > > <CONCEPT name="Car" ref="10180"/> > > > > </PARENT> > > > > <CHILD> > > > > <CONCEPT name="Corolla" ref="10279"/> > > > > </CHILD> > > > > </DEFCONCEPT > > > > > <DEFCONCEPT id="10279" name="Corolla"> > > > > <PARENT> > > > > <CONCEPT name="Toyota" ref="10235"/> > > > > </PARENT> > > > > </DEFCONCEPT > > > > > ----------------------- > > > > and I want to reach the <DEFCONCEPT name="Corolla"> from the node > > > > <DEFCONCEPT name="Car"> because I have a query to determine the > > > > existence of a kind_of Car 'Corolla' irrespective of the > > > case (upper > > > > or lower) in which it has been written and where in the > > > hierarchy it > > > > exists. How will it be possible using XSLT? > > > > > > > > > Thanks > > > Rahil > > > ====================================================================== > Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx > Mulberry Technologies, Inc. http://www.mulberrytech.com > 17 West Jefferson Street Direct Phone: 301/315-9635 > Suite 207 Phone: 301/315-9631 > Rockville, MD 20850 Fax: 301/315-8285 > ---------------------------------------------------------------------- > Mulberry Technologies: A Consultancy Specializing in SGML and XML > ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] graph-traversal query, Wendell Piez | Thread | [xsl] Relative XPATH between 2 node, Lyublinski, Leonid |
RE: [xsl] Can exclude-result-prefix, Michael Kay | Date | RE: [xsl] String matching without r, Marcel Stör |
Month |