Hi,
I have a problem with ft:mark()that seems to be a bug. Given the following query:
for $sentence in //sentence where $sentence[text() contains text "biological"] return ft:mark($sentence[text() contains text "biological"], 'b')
And the following document structure:
<article> <articleInfo> <date>27-06-14</date> <author>Author</author> </articleInfo> <section id="1"> <title id="1.1">Title Section here</title> <paragraph id="1.1.1"> <sentence id="1.1.1.1.1">Induction of NF-KB during monocyte differentiation by HIV type 1 infection.</sentence> <sentence id="1.1.1.1.2">Electrophoretic mobility shift assays and Southwestern blotting experiments were used to detect the binding of cellular transactivation factor NF-KB to the double repeat-KB enhancer sequence located in the long terminal repeat.</sentence> </paragraph> ...
In Java, if I use the methods query(String query), process(String query) or serialize(String query) from https://github.com/BaseXdb/basex/blob/master/basex-examples/src/main/java/or..., I get the desired results (i.e. the term “biological” is highlighted):
<sentence id="445">A novel fluorescent silica tracer for <b>biological</b> silicification studies</sentence> <sentence id="319125">Cell <b>biological</b> basis of biomineralization</sentence> ...
But when I try to access the Java object, using the method iterate(String query), the highlight is missing:
QueryProcessor proc = new QueryProcessor(query, context); Iter iter = proc.iter(); ArrayList<BXElem> results = new ArrayList<BXElem>(); for(Item item; (item = iter.next()) != null;) results.add((BXElem) item.toJava()); proc.close();
// print results for(BXElem elem: results) System.out.println(elem.getTextContent());
Output:
A novel fluorescent silica tracer for biological silicification studies Cell biological basis of biomineralization ...
Is this a known bug or I am doing something wrong?
Thank you in advance.
Javier