Subject: Re: [xsl] XPath equivalent of a join From: "Aaron Luke" <bluenike@xxxxxxxxx> Date: Sat, 14 Jul 2007 01:53:13 -1000 |
BTW, if instead of 1501 classes x 1501 teacher, there are 1501 classes x 1 teacher or 1 class x 1500 teachers, the running times are only 1 second and 3 seconds respectively.
Hi-
Thanks for your solution... the only problem is that this solution seems to run very slowly. If I replicate 1500 copies of the class with id="2" and 1500 with the teacher with id="9", then the query takes almost 30 seconds using Saxon8 on a 2Ghz Core 2 Duo even though the query only matches 1 record. Any ideas on speeding that up?
I included a fixed version of the xml doc below, too.
Aaron
<root> <class id="1"> <teacher>5</teacher> </class> <class id="2"> <teacher>9</teacher> </class>
<teacher id="5"> <gender>female</gender> </teacher> <teacher id="9"> <gender>male</gender> </teacher> </root>
On 7/14/07, Mukul Gandhi <gandhi.mukul@xxxxxxxxx> wrote: > Your input XML is not as per the XML spec (there should be double > quotes around attribute values). > > If the above error is corrected in the XML, I found the following > solution to work: > > <?xml version="1.0"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > > <xsl:output method="xml" indent="yes" /> > > <xsl:template match="/root"> > <result> > <xsl:copy-of select="class[teacher = ../teacher[gender = > 'female']/@id]" /> > </result> > </xsl:template> > > </xsl:stylesheet> > > On 7/14/07, Aaron Luke <bluenike@xxxxxxxxx> wrote: > > Hi all- > > > > Given the following document: > > > > <root> > > <class id="1"> > > <teacher>5</teacher> > > </class> > > <class id="2"> > > <teacher>9</teacher> > > </class> > > > > <teacher id=5> > > <gender>female</gender> > > </teacher> > > <teacher id=9> > > <gender>male</gender> > > </teacher> > > </root> > > > > Is there an XPath statement that selects all of the classes taught by > > female teachers (in this case, just the first class)? > > The field class.teacher is an id reference to teacher.id. > > > > In sql, I would be looking for: > > > > select class.* from class c, teacher t where c.teacher=t.id and > > t.gender='female'; > > > > Can't seem to figure this one out- any help would be appreciated. > > > > Aaron > > > -- > Regards, > Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XPath equivalent of a joi, Aaron Luke | Thread | RE: [xsl] XPath equivalent of a joi, Michael Kay |
Re: [xsl] XPath equivalent of a joi, Aaron Luke | Date | RE: [xsl] XPath equivalent of a joi, Michael Kay |
Month |