Re: [xsl] compare two node sets

Subject: Re: [xsl] compare two node sets
From: "David Birnbaum djbpitt@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 19 Jan 2020 20:40:20 -0000
Dear Wolfhart,

You may find
http://www.xqueryfunctions.com/xq/functx_sequence-deep-equal.html useful.

Best,

David

On Sun, Jan 19, 2020 at 3:36 PM Wolfhart Totschnig
wolfhart.totschnig@xxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
wrote:

> Hello,
>
> I have an XSL/XPath problem to which I cannot find the solution. I have
> an xml file with data about films, in the following form (simplified):
>
>     <film>
>        <title>The big Lebowski</title>
>        <director>
>           <first>Joel</first>
>           <last>Coen</last>
>        </director>
>        <director>
>           <first>Ethan</first>
>           <last>Coen</last>
>        </director>
>        <author>
>           <first>Ethan</first>
>           <last>Coen</last>
>        </author>
>        <author>
>           <first>Joel</first>
>           <last>Coen</last>
>        </author>
>     </film>
>
> I would like to test whether the director(s) of the film are the same as
> its writer(s) (here called "authors"). That is, I want to test whether
> for each <director> element there is an <author> element with the same
> child elements, and vice versa (i.e., for each <author> element a
> corresponding <director> element). So, in the above case, the test
> should return <true>. Note that the order of the <director>/<author>
> elements should not matter. By contrast, in the following example the
> test should return <false>:
>
>     <film>
>        <title>M</title>
>        <director>
>           <first>Fritz</first>
>           <last>Lang</last>
>        </director>
>        <author>
>           <first>Thea von</first>
>           <last>Harbou</last>
>        </author>
>        <author>
>           <first>Fritz</first>
>           <last>Lang</last>
>        </author>
>     </film>
>
> How can this be done?
>
> To explain the purpose of this: When the test comes out true, the output
> will be "Written and directed by [names]", whereas otherwise it will be
> "Written by [names]. Directed by [names]".
>
> Thanks in advance for your help!
>
> Wolfhart

Current Thread