Dear BaseX Team!
After several unfortunately unsuccessful trials & errors I am appealing to with a question which should be easy for you to answer, as I think it is pretty basic.
I have a BaseX database filled up with thousands of different but equally structured xml-documents. What I want to do is to parse out
necessary information and transform that into html files with distinct names. Actually I can parse out all the information I want but the output at the moment is just one huge html-file. The corresponding xquery looks something like this (I just left the parts in there which seem in my opinion relevant for my question, for real the whole xquery files is much much longer)
declare option output:method "html";
(:Define word count function:)
declare namespace functx = "http://www.functx.com";
declare function functx:word-count ($arg as xs:string?) as xs:integer {count(tokenize($arg,'\W+')[. != ''])};
let $items:=
for $docitem in .//docitem
where
(:Text length (number of tokens):)
for $text in $docitem/text
where functx:word-count($text)<250
return
(:Language :)
for $language in $docitem/@xml:lang
where $language="en"
return
<html>
<body>
<h3>{data($docitem/headline/text())}</h3>
{$docitem/text/p/text()}
<br>ID: {data($docitem/@itemid)}</br>
<br>Word count:{functx:word-count($text)}</br>
</body>
</html>
let $documentname := concat('//htmlfolder/', $doc_id, '.html')
return file:write($documentname, $items)
BaseX always tells me that "no sequences are allowed regarding $docitem/@itemid". What could be the problem there, or how could I solve this problem. I have tried several combinations because from what I have found on the web regarding my problem the solution should go into a similar direction. Would please somebody of you be so nice to help me with that. Every hint would be very much appreciated!
Best regards,
Andreas