2017-01-19 1 views
0

オーケーを働いていないので、私はこのXMLを持っている:FN:機能minの

<?xml version="1.0" encoding="UTF-8" ?> 
<dvdCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://teste1.org" 
xsi:noNamespaceSchemaLocation="http://teste1.org dvds.xsd"> 
<dvd> 
<id>1</id> 
<title>Pulp Fiction</title> 
<release-year>1994</release-year> 
<director>Quentin Tarantino</director> 
<actors> 
< actor type="star" gender="male">John Travolta</actor> 
<actor type="star" gender="female">Uma Thurman</actor> 
<actor type="co-star" gender="male">Samuel L. Jackson</actor> 
</actors> 
<genres><genre>Crime</genre><genre>Drama</genre></genres> 
</dvd> 
<dvd> 
<id>2</id> 
<title>Green mile</title> 
<release-year>1993</release-year> 
<director>Quentin Tarantino</director> 
<actors> 
<actor type="star" gender="male">Tom hanks</actor> 
</actors> 
<genres><genre>Crime</genre></genres> 
</dvd> 
<dvd> 
<id>3</id> 
<title>Titanic</title> 
<release-year>1999</release-year> 
<director>Quentin Tarantino</director> 
<actors> 
<actor type="star" gender="male">Tom hanks</actor> 
</actors> 
<genres><genre>Crime</genre></genres> 
</dvd> 
</dvdCollection> 

私は犯罪のジャンルと最小のリリース年をフェッチしようとしています。これは私のクエリ ですが、何らかの理由でその全てのリリースの年のように戻っ:

私はこの内部FNのようなシーケンスをputingています。最小

<release-year xmlns="http://teste1.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1994</release-year> 
<release-year xmlns="http://teste1.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1993</release-year> 
<release-year xmlns="http://teste1.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1999</release-year> 

私は印象を与えられたfn:分は私のシーケンスを平らにするでしょう、私は間違っています、誰かがこの関数の仕組みを説明することができますか?

クエリ:事前に

declare default element namespace "http://teste1.org"; 
    let $dvds := fn:doc("dvdcollection.xml")//dvd 
    for $dvd in $dvds//genre[.="Crime"] 
    let $min := fn:min($dvd/../../release-year) 
    return $min 

感謝!!

答えて

0

似たようなミスをお持ちの方: さて、fn:分は私がしなければならないことですが、問題は私がfn:分をfor命令のために各要素に適用していたことでした。これは私が望んでいたものではないので、私は一連のリリース年をグループ化したいと思っていました。

declare default element namespace "http://teste1.org"; 
let $dvds := fn:doc("dvdcollection.xml")//dvd 
**let** $dvd := $dvds//genre[.="Crime"] 
let $min := fn:min($dvd/../../release-year) 
return $min 

"for"を "let"に置き換えて、間違いを取り除きます。

関連する問題