tirsdag den 23. december 2008

Hvordan at opdele et stort XML dokument i mange mindre ?

Vi modtager ofte denne type spørgsmål:
"Jeg har et stort XML dokument, og jeg har brug for at opdele den i mange mindre dokumenter; mit dokument ser sådan ud: ... og jeg er nødt til at dokumenter, som ikke indeholder mere end N-registreringer hver. "
Brug DataDirect XQuery denne opgave er helt enkel; løftestang for den ddtek: fljeton-til -url () fuction, kan du gøre noget som dette:
 
erklære variable $ recordsPerDocument: = 10;

Lad $ optegnelser: = doc ( "c:/books.xml")/records
lad $ groupCount: = xs: heltal (fn: loftet (count ($ records) div $ recordsPerDocument))
for $ g i 1 til $ groupCount
lad $ gruppe: = $ registre [fn: position () GT ($ g - 1) * $ recordsPerDocument og fn: position () le $ g * $ recordsPerDocument]
vende tilbage
ddtek: fljeton-til-url (
($ gruppe)
concat ( "file:/// c:/split-", $ g ". xml"), "led = yes")
Hvad nu, hvis du ønsker at gøre noget lignende, men anvendes til rdbms tabeller? Hvordan får jeg delt indholdet af en rdbms tabellen på tværs af flere XML-dokumenter?
Tja, som vi taler om DataDirect XQuery, bør det ikke overraske Dem, at stort set de samme XQuery kan anvendes på en tabel:
 
erklære variable $ recordsPerDocument: = 10;

Lad $ records: = indsamling ( "myTable")/myTable
lad $ groupCount: = xs: heltal (fn: loftet (count ($ records) div $ recordsPerDocument))
for $ g i 1 til $ groupCount
lad $ gruppe: = $ registre [fn: holdning ( ) GT ($ g - 1) * $ recordsPerDocument og fn: position () le $ g * $ recordsPerDocument]
vende tilbage
ddtek: fljeton-til-url (
( $ gruppe)
concat ( "file:/// c:/split-", $ g ". xml"), "led = yes")
Endnu en gang XQuery tilbyder en enkel, fleksibel løsning på et problem, der kommer op temmelig ofte .

mandag den 22. december 2008

Paul Guest

Nogle oplysninger om den nye Paul Guest fra vores venner p?cco. Den nye bog (hans fjerde) har modtaget denne fantastiske samling af blurbs.


 Paul Guest eKort (2)