Как я могу вернуть атрибут из XML-файла в xquery? - PullRequest
0 голосов
/ 09 апреля 2019

Я изо всех сил пытался получить название фильмов, упорядоченных по имени автора, что я имею в виду, я хочу получить название фильмов каждого автора.это мой запрос:

    for $f in doc("Films.xml")//FILM,
$a in doc("Artistes.xml")//ARTISTE
where $a/@ID=$f/ROLES/ROLE/@acteur
order by $a/NOM
return string($f/@title)

Ресурс:

<ARTISTES>
<ARTISTE ID='6'>
<NOM>Cameron</NOM>
<PRENOM>James</PRENOM>
<ANNEENAISS>1954</ANNEENAISS>
</ARTISTE>
<ARTISTE ID='3'>
<NOM>Hitchcock</NOM>
<PRENOM>Alfred</PRENOM>
<ANNEENAISS>1899</ANNEENAISS>
</ARTISTE>
</ARTISTES>



<FILMS>
<FILM titre='Vertigo'>
 <ANNEE>1958</ANNEE>
 <GENRE>Drame</GENRE>
 <PAYS>USA</PAYS>
 <MES>Hitchcock</MES>
 <ROLES>
  <ROLE acteur='3'>John Ferguson</ROLE>
  <ROLE acteur='16'>Madeleine Elster</ROLE>
 </ROLES>
</FILM>
<FILM titre='Alien'>
 <ANNEE>1979</ANNEE>
 <GENRE>Science-fiction</GENRE>
 <PAYS>USA</PAYS>
 <MES>Scott</MES>
 <ROLES>
  <ROLE acteur='6'>Ripley</ROLE>
 </ROLES>
</FILM>
<FILM titre='Titanic'>
 <ANNEE>1997</ANNEE>
 <GENRE>Drame</GENRE>
 <PAYS>USA</PAYS>
 <MES>Cameron</MES>
 <ROLES>
  <ROLE acteur='3'>Rose DeWitt Bukater</ROLE>
  <ROLE acteur='6'>Jack Dawson</ROLE>
 </ROLES>
</FILM>
</FILMS>

Я буду благодарен, если найдется кто-нибудь, кто поможет мне решить эту проблему.

1 Ответ

0 голосов
/ 09 апреля 2019

Сначала поместите все в корневой элемент.Вот моя попытка:

let $doc := doc('1.xml')
let $authors := for $i in $doc//ARTISTES/ARTISTE
  return data($i/NOM)
for $author in $authors
  for $mes in $doc//FILMS/FILM where xs:string($mes/MES) = xs:string($author)
    return <Res>{data($author), data($mes/@titre)}</Res>
...