FLWOR
Programmeringsspråket XQuery definierar FLWOR (uttalas 'blomma') som ett uttryck som stöder iteration och bindning av variabler till mellanresultat. FLWOR är en akronym: FOR , LET , WHERE, ORDER BY, RETURN. FLWOR är löst analog med SQL: s SELECT-FROM-WHERE och kan användas för att tillhandahålla kopplingsliknande funktionalitet till XML -dokument.
- för skapar en sekvens av noder
- let binder en sekvens till en variabel
- där filtrerar noderna på ett booleskt uttryck
- sortera noderna
- retur utvärderas en gång för varje nod
Exempel
för $ d i doc ( "depts.xml" )// deptno let $ e := doc ( "emps.xml" )// anställd [ deptno = $ d ] där count ( $ e ) >= 10 order by avg ( $ e / lön ) fallande avkastning <big-dept> { $ d , <headcount> { count ( $ e )} </headcount> , <avgsal> { avg ( $ e / lön )} </avgsal> } </ storavdelning>
Första kolumnen i XQuery-begäran visar för , let , where , ordning efter och returnera nyckelorden i FLWOR-paradigmet. På vanlig engelska skulle detta kunna läsas som "Hämta alla avdelningar som har mer än tio anställda, beställ dessa avdelningar genom att minska medellönen, och returnera en rapport över avdelningsnummer, antal anställda och genomsnittlig lön i varje stor avdelning" . Resultatet kan se ut så här:
<big-dept> <deptno> 17 </deptno> <headcount> 25 </headcount> <avgsal> 12500 </avgsal> </big-dept> <big-dept> <deptno> 24 </deptno> < headcount > 18 </headcount> <avgsal> 11327 </avgsal> </big-dept> <big-dept> <deptno> 3 </deptno> <headcount> 32 </headcount> <avgsal> 10725 </avgsal> < /big-dept>
Exempel med hjälp av Microsoft SQL Server
DECLARE @xml XML SET @xml = '<root_element> <branch_element> <item_1>42</item_1> <item_2>27</item_2> </branch_element> <branch_element> <item_1>a</item_1> <item_2>b </item_2> </branch_element> </root_element>' VÄLJ x . y . query ( 'for $s in self::node() return $s//item_1/text()' ) som i , x . y . query ( 'for $s in self::node() return $s//item_2/text()' ) som j FROM @xml . noder ( '/root_element' ) AS x ( y );
externa länkar
- W3C XML Query (XQuery) - FLWOR-uttryck
- FLWOR exempel
- Introduktion till FLWOR
- https://web.archive.org/web/20111008001258/http://w3schools.com/xquery/xquery_flwor.asp