2016-07-12 39 views
2

Angenommen, wir haben eine Reihe von XML-Datensätzen. Jeder Datensatz hat eine <paragraph> pla pla pla </paragraph>. Wie extrahiert man die distinctive-terms aus allen Absätzen aller Datensätze? Nicht von jedem Absatz getrennt. Der folgende Code extrahiert distinctive-terms aus jedem Absatz separat.Xquery Wie extrahiert man die Unterscheidungsbegriffe aus einem Satz von XML-Knoten in einem Satz von XML-Datensätzen?

for $record in /rec:Record 


for $record in /rec:Record 
let $distinct-terms:= cts:distinctive-terms(<info>{$record/rec:paragraph } </info> ,<options xmlns="cts:distinctive-terms"><max-terms>10</max-terms></options>)//cts:text/string() 
return 
$distinct-terms 

Die Ausgabe, die ich will, ist die distinctive-terms die Nicht für jeden Datensatz einzeln alle Absätze in allen Datensätzen darstellt.

Antwort

4

die Schleife Bewegen Sie den Funktionsaufruf nach innen:

cts:distinctive-terms(/rec:Record/<info>{./rec:paragraph}</info>) 
+0

Es funktionierte. Danke –

+0

Was bedeutet der Punktoperator gefolgt von einem Schrägstrichoperator '. /' In '{./rec:paragraph}'? –

+0

Es ist eine Abkürzung für den aktuellen Kontextknoten. In diesem Fall '/ rec: Record/'iteriert durch alle rec: Record Root-Elemente und' {./rec:paragraph} 'wird für jeden ausgewertet. Also bezieht sich "." Auf rec: Record here .. – grtjn