Thanks Martin and Michael for the “sofortige Antoworten”.
Forgive my lack of understanding about the particular of whitespace processing 
and how BASEX deals with them.
To answer Martin’s questions:
1) I stored that xml (as I do all of my email) in the database using this 
commands in the basex shell:
ADD TO PROSE.test test.xml
after I created the file in vi on my desktop.
I had no xml preamble or any processing instructions about the whitespace.
2) I am also querying in the basex using XQUERY.

In short,I need to get the result with the actual text node after the element I 
target, even if it is null, not the next element’s non-null text.

Given my storage, is adjusting the XPATH the way Kristian suggested the best 
way to achieve my goal?
Concretely, how can I adjust how XQUERY executes the path directly to deal with 
the whitespace issue? I cannot use parse-xml(). Do I add the -w option to the 
XQUERY that I call from the basex client?
And concretely, how can I store the XML with preamble or processing instruction 
about whitespace to achieve my result?

> On Feb 26, 2019, at 05:50, Michael Seiferle <m...@basex.org> wrote:
> 
> Hi Mark, 
> Hi Martin,
> 
> yes Martin is right, the whitespace will be chopped by default leading to the 
> observed behavior.
> 
> If you wanted to preserve whitespace globally, you can do that when creating 
> your database. 
> If you only want to preserve whitespace for a given element you may do this 
> as well:
> 
>> let $db := 
>> '<text id="test">
>>   <clause xml:space="preserve">
>>     <word>A</word>a
>>     <word>B</word>
>>     <word>C</word>c
>>   </clause>
>> </text>' => parse-xml() (: have to actually parse it for the whitespace 
>> preserve to have a an effect :)
>> 
>> return $db//word/concat(text(), ' ', 
>> normalize-space(./following-sibling::text()[1]))
> 
> Which returns: 
>> A a
>> B 
>> C c
> 
> 
> Best
> Michael
> 
>> 
>> Am 26.02.2019 um 09:48 schrieb Martin Honnen <martin.hon...@gmx.de 
>> <mailto:martin.hon...@gmx.de>>:
>> 
>> 
>> I think the result you get is caused by whitespace chopping during XML 
>> parsing, seems to be the default, 
>> seehttp://docs.basex.org/wiki/Command-Line_Options 
>> <http://docs.basex.org/wiki/Command-Line_Options>
>> -w   Toggles whitespace chopping of XML text nodes. By default, whitespaces 
>> will be chopped.
>> 
>> 
>> 
> 

Reply via email to