2017-11-09 2 views
1

내가 5 차, 5 개 소유자 각각 차를 가지고, 나는 그의 나라 다른 자동차의 소유자에 나타나지 않습니다 (같은 자동차의 소유자에 나타날 수 있습니다) 그 소유자 반환해야합니다질문 작성 방법 xquery?

<root> 
    <car> 
    <id>1</id> 
    <owner> 
      <name>George Smith</name> 
      <nation>USA</nation> 
    </owner> 
    <owner> 
      <name>Carolina Herre</name> 
      <nation>USA</nation> 
    </owner> 
    <owner> 
      <name>Martha Belar</name> 
      <nation>Denmark</nation> 
    </owner> 
    <owner> 
      <name>Fernando Izza</name> 
      <nation>Italy</nation> 
    </owner> 
    <owner> 
      <name>George Smith</name> 
      <nation>Italy</nation> 
    </owner> 
</car> 
<car> 
    <id>2</id> 
    <owner> 
      <name>George Gelar</name> 
      <nation>USA</nation> 
    </owner> 
    <owner> 
      <name>Gema Bio</name> 
      <nation>Spain</nation> 
    </owner> 
    <owner> 
      <name>Peter Vdf</name> 
      <nation>Denmark</nation> 
    </owner> 
    <owner> 
      <name>Felipe Rodriguez</name> 
      <nation>Denmark</nation> 
    </owner> 
    <owner> 
      <name>George Smith</name> 
      <nation>USA</nation> 
    </owner> 
</car> 
<car> 
... 
</car> 
<car> 
... 
</car> 
<car> 
... 
</car> 
</root> 

을 그

<owner> 
    <name>Fernando Izza</name> 
    <nation>Italy</nation> 
    <carID>1</carID> 
</owner> 
<owner> 
    <name>George Smith</name> 
    <nation>Italy</nation> 
    <carID>1</carID> 
</owner> 
<owner> 
    <name>Gema Bio</name> 
    <nation>Spain</nation> 
    <carID>2</carID> 
</owner> 

내가 그 나라에서 그 소유자를 얻을 후 여러 자동차에 표시되지 않는 국가의 목록을 얻고, 시도,하지만 난 모르겠어요, 그 XML을 주어, 출력 될 것이다 그것을 얻는 방법.

+0

? XQuery를 보여 주시겠습니까? – dirkk

+0

여기에 질문하는 데 좋은 규칙이 있습니다. 하지 마십시오. 조금도. 이제까지. – halfer

+0

죄송합니다. 나는 단 하나의 자동차에 대해서만 나타나는 자동차 소유자의 국가를 얻기 위해 다음을 시도했다. 그러나 나는 계속해야하는지, 아니면이 시작이 나를 돕는 지 모르겠다. $ c를 doc ("cars.xml") // 자동차 $ n을 고유 값 (doc ("cars.xml")으로) // 자동차/소유자/국가/텍스트()) 가 보자 $ m : = $의 C/소유자/국가/텍스트() 반환 경우 ($ N = $의 m) 다음 {$ n을} 다른 () – Leon

답변

0

할 수 있습니다 단지 그룹 그들의 ​​국가에 의해 소유자 및 그 국가가 하나 개 이상의 자동차 아래에 발생하는지 확인하기 위해 위쪽으로 보면 : 당신이 시도 무엇

for $owner in doc("cars.xml")//car/owner 
group by $nation := $owner/nation 
where count($owner/..) eq 1 
for $o in $owner 
return <owner>{ 
    $o/*, 
    <carID>{$o/../id/text()}</carID> 
}</owner> 
+0

당신은 나를 구 했어요. 고마워요 !!! 고맙습니다! – Leon