Got*_*nks 3 xml xslt xpath xslt-1.0
我需要编写一个非常复杂的XSLT 1.0查询.
鉴于以下XML文件,我需要一个查询来获取多个报告中的作者集.(例如Antonio Rossi,因为他在报告1和2中都是如此).
<reports>
<report id="01">
<titolo>
I venti del Nord
</titolo>
<autori>
<autore>
Antonio Rossi
</autore>
<autore>
Mario Verdi
</autore>
</autori>
<versioni>
<versione numero="1.0">
<data>
13-08-1980
</data>
<autore>
Mario Verdi
</autore>
<commento>
versione iniziale
</commento>
</versione>
<versione numero="2.0">
<data>
14-08-1981
</data>
<autore>
Antonio Rossi
</autore>
<commento>
poche modifiche
</commento>
</versione>
</versioni>
</report>
<report id="02">
<titolo>
Le pioggie del Nord
</titolo>
<autori>
<autore>
Antonio Rossi
</autore>
<autore>
Luca Bianchi
</autore>
</autori>
<versioni>
<versione numero="1.0">
<data>
13-12-1991
</data>
<autore>
Antonio Rossi
</autore>
<commento>
versione iniziale
</commento>
</versione>
<versione numero="2.0">
<data>
14-08-1992
</data>
<autore>
Antonio Rossi
</autore>
<commento>
modifiche al cap. 1
</commento>
</versione>
<versione numero="3.0">
<data>
18-08-1992
</data>
<autore>
Antonio Rossi
</autore>
<commento>
Aggiunta intro.
</commento>
</versione>
<versione numero="4.0">
<data>
13-01-1992
</data>
<autore>
Luca Bianchi
</autore>
<commento>
Modifiche sostanziali.
</commento>
</versione>
</versioni>
</report>
<report id="03">
<titolo>
Precipitazioni nevose
</titolo>
<autori>
<autore>
Fabio Verdi
</autore>
<autore>
Luca Bianchi
</autore>
</autori>
<versioni>
<versione numero="1.0">
<data>
11-01-1992
</data>
<autore>
Fabio Verdi
</autore>
<commento>
versione iniziale
</commento>
</versione>
<versione numero="2.0">
<data>
13-01-1992
</data>
<autore>
Luca Bianchi
</autore>
<commento>
Aggiornato indice
</commento>
</versione>
</versioni>
</report>
</reports>
Run Code Online (Sandbox Code Playgroud)
如果您可以使用XPath 2.0,您可以使用:
distinct-values(/reports/report/autori/autore[preceding::report/autori/autore = . or following::report/autori/autore = .])
Run Code Online (Sandbox Code Playgroud)
使用输入XML,它将返回:
Antonio Rossi
Luca Bianchi
Run Code Online (Sandbox Code Playgroud)