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.
On 7/14/07, Aaron Luke <bluenike(_at_)gmail(_dot_)com> wrote:
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(_dot_)mukul(_at_)gmail(_dot_)com> 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(_at_)gmail(_dot_)com> 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
>
> --~------------------------------------------------------------------
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
> To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
> or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
> --~--
>
>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--