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.nl<mailto: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
participants (4)
-
Ben Engbers -
Ben Engbers -
Bridger Dyson-Smith -
Zimmel, Daniel