Hi,
My xml has the structure <base> <element1> <al-group> <al>bla</al> </al-group> </element1> <element1> <al-group> <al>bla</al> </al-group> <al-group> <al>bla</al> </al-group> </element1> </base>
The <al-group> element contains 1 to many <al> elements.
let $tekst := fn:string-join(fn:data($par//al/text()), ".") concatenates this to: bla.bla.bla But I want it to return: bla bla bla
Is it possible to add a newline item-separator to fn:string-join?
Ben Engbers
Hi Ben,
On Thu, Feb 24, 2022 at 10:44 AM Ben Engbers Ben.Engbers@be-logical.nl wrote:
Hi,
My xml has the structure
<base> <element1> <al-group> <al>bla</al> </al-group> </element1> <element1> <al-group> <al>bla</al> </al-group> <al-group> <al>bla</al> </al-group> </element1> </base>
The <al-group> element contains 1 to many <al> elements.
let $tekst := fn:string-join(fn:data($par//al/text()), ".") concatenates this to: bla.bla.bla But I want it to return: bla bla bla
Is it possible to add a newline item-separator to fn:string-join?
how about string-join($input//al/text(), ' ')?
Ben Engbers
Best, Bridger
or, if you prefer, you could even use a function for this, see https://docs.basex.org/wiki/Output_Module
out:nl()
Von: BaseX-Talk basex-talk-bounces@mailman.uni-konstanz.de Im Auftrag von Bridger Dyson-Smith Gesendet: Donnerstag, 24. Februar 2022 16:57 An: Ben.Engbers@be-logical.nl Cc: Basex Mail-lijst basex-talk@mailman.uni-konstanz.de Betreff: Re: [basex-talk] string-join with a newline separator?
Hi Ben,
On Thu, Feb 24, 2022 at 10:44 AM Ben Engbers <Ben.Engbers@be-logical.nlmailto:Ben.Engbers@be-logical.nl> wrote: Hi,
My xml has the structure <base> <element1> <al-group> <al>bla</al> </al-group> </element1> <element1> <al-group> <al>bla</al> </al-group> <al-group> <al>bla</al> </al-group> </element1> </base>
The <al-group> element contains 1 to many <al> elements.
let $tekst := fn:string-join(fn:data($par//al/text()), ".") concatenates this to: bla.bla.bla But I want it to return: bla bla bla
Is it possible to add a newline item-separator to fn:string-join? how about string-join($input//al/text(), ' ')?
Ben Engbers Best, Bridger
Ok, at least in the GUI using as separator works. Is this a HTML-specific separator?
I use 'string-join' in R in the following statement: Query_Stmt <-paste( 'import module namespace functx = "http://www.functx.com";', 'for $Debat at $CountOuter in collection("Parliament"),', ' $Turn in collection("Parliament")', ' where $Turn/officiele-publicatie/metadata/meta/@content = $Debat/officiele-publicatie/metadata/meta/@content', ' and $CountOuter <=2', ' let $debate-id := fn:analyze-string(', ' $Debat/officiele-publicatie/metadata/meta/@content, "(\d{8}-\d*-\d*)")//fn:match/*:group[@nr="1"]/text()', ' for $Speach at $CountInner in $Turn/officiele-publicatie/handelingen/agendapunt/spreekbeurt', ' let $Spreker := $Speach/spreker/naam/achternaam/text()', ' let $Pol := $Speach/spreker/politiek/text()', ' order by $debate-id, $CountInner', ' for $par at $CountPar in $Turn/officiele-publicatie/handelingen/agendapunt/spreekbeurt/tekst', ' let $tekst := fn:string-join(fn:data($par//al/text()), " ")', ' return($debate-id, $Spreker, ($Pol, "n.v.t")[1], $CountPar, $tekst)'
When I use "." as item separator, this statement returns: $debate-id, $Spreker, ($Pol, "n.v.t")[1], $CountPar, $tekst1.$tekst2 But when I use " " it returns: $debate-id, $Spreker, ($Pol, "n.v.t")[1], $CountPar, $tekst1 NA NA NA NA $tekst2
(NA means Not Available)
So in R the is interpreted as a splitter. ;-(
I'll take a look at this and will let you know if I can find a solution.
Ben
Ok, at least in the GUI using as separator works. Is this a HTML-specific separator?
no, this is the decimal notation of a line feed in UTF-8. Not sure what you environment expects your encoding, you might want to try carriage return instead ( )
Line endings can be fun.
Best Daniel
basex-talk@mailman.uni-konstanz.de