Reputation: 15
suppose we have the following XML document:
<movies>
<movie>
<title>A History of Violence</title>
<year>2005</year>
<country>USA</country>
<genre>Crime</genre>
<director id="n1"/>
<actor id="n2" role="Tom Stall"/>
<actor id="n3" role="Eddie Stall"/>
<actor id="n4" role="Carl Fogarty"/>
<actor id="n5" role="Richie Cusack"/>
</movie>
<movie>
<title>Heat</title>
<year>1995</year>
<country>USA</country>
<genre>Crime</genre>
<director id="n6"/>
<actor id="n7" role="Lt. Vincent Hanna"/>
<actor id="n8" role="Neil McCauley"/>
<actor id="n9" role="Chris Shiherlis"/>
<actor id="n10" role="Nate"/>
</movie>
<movie>
<title>Unforgiven</title>
<year>1992</year>
<country>USA</country>
<genre>Western</genre>
<director id="n11"/>
<actor id="n11" role="William 'Bill' Munny"/>
<actor id="n12" role="Little Bill Daggett"/>
<actor id="n13" role="Ned Logan"/>
</movie>
<movie>
<title>Match Point</title>
<year>2005</year>
<country>USA</country>
<genre>Crime</genre>
<director id="n14"/>
<actor id="n15" role="Chris Wilton"/>
<actor id="n16" role="Nola Rice"/>
</movie>
<movie>
<title>Lost in Translation</title>
<year>2003</year>
<country>USA</country>
<genre>Drama</genre>
<director id="n17"/>
<actor id="n16" role="Charlotte"/>
<actor id="n18" role="Bob Harris"/>
</movie>
<movie>
<title>Marie Antoinette</title>
<year>2006</year>
<country>USA</country>
<genre>Drama</genre>
<director id="n17"/>
<actor id="n19" role="Marie Antoinette"/>
<actor id="n20" role="Louis XVI"/>
</movie>
<movie>
<title>Spider-Man</title>
<year>2002</year>
<country>USA</country>
<genre>Action</genre>
<director id="n21"/>
<actor id="n19" role="Mary Jane Watson"/>
<actor id="n22" role="Spider-Man / Peter Parker"/>
<actor id="n23" role="Green Goblin / Norman Osborn"/>
</movie>
<!-- Artists -->
<artist id="n1">
<last_name/>
<first_name/>
<birth_date>1999-02-02</birth_date>
</artist>
<artist id="n2">
<last_name>Mortensen</last_name>
<first_name>Vigo</first_name>
<birth_date>1958-01-01</birth_date>
</artist>
<artist id="n3">
<last_name>Bello</last_name>
<first_name>Maria</first_name>
<birth_date>1967-05-08</birth_date>
</artist>
<artist id="n4">
<last_name>Harris</last_name>
<first_name>Ed</first_name>
<birth_date>1950-09-10</birth_date>
</artist>
<artist id="n5">
<last_name>Hurt</last_name>
<first_name>William</first_name>
<birth_date>1950-04-04</birth_date>
</artist>
<artist id="n6">
<last_name>Mann</last_name>
<first_name>Michael</first_name>
<birth_date>1943-01-04</birth_date>
</artist>
<artist id="n7">
<last_name>Pacino</last_name>
<first_name>Al</first_name>
<birth_date>1940-07-07</birth_date>
</artist>
<artist id="n8">
<last_name>De Niro</last_name>
<first_name>Robert</first_name>
<birth_date>1943-03-03</birth_date>
</artist>
<artist id="n9">
<last_name>Kilmer</last_name>
<first_name>Val</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n10">
<last_name>Voight</last_name>
<first_name>Jon</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n11">
<last_name>Eastwood</last_name>
<first_name>Clint</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n12">
<last_name>Hackman</last_name>
<first_name>Gene</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n13">
<last_name>Freeman</last_name>
<first_name>Morgan</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n14">
<last_name>Allen</last_name>
<first_name>Woody</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n15">
<last_name>Rhys Meyers</last_name>
<first_name>Jonathan</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n16">
<last_name>Johansson</last_name>
<first_name>Scarlett </first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n17">
<last_name>Coppola</last_name>
<first_name>Sofia</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n18">
<last_name>Murray</last_name>
<first_name>Bill</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n19">
<last_name>Dunst</last_name>
<first_name>Kirsten</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n20">
<last_name>Schwartzman</last_name>
<first_name>Jason </first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n21">
<last_name>Raimi</last_name>
<first_name>Sam</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n22">
<last_name>Maguire</last_name>
<first_name>Tobey</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
<artist id="n23">
<last_name>Dafoe</last_name>
<first_name>Willem</first_name>
<birth_date>1959-06-06</birth_date>
</artist>
using XPath 1.0, I need to return:
//movie[not(count(actor) < //movie/count(actor))]
//movie[count(actor) = max( //movie/count(actor))]
but they do not work in XPath 1.0. they work fine in XPath 2.0
Upvotes: 0
Views: 32