当前位置:  开发笔记 > 编程语言 > 正文

如何保持cts:从匹配内​​部XML标签突出显示?

如何解决《如何保持cts:从匹配内​​部XML标签突出显示?》经验,为你挑选了1个好方法。

我正在尝试使用REST API搜索某些内容并突出显示MarkLogic中XML内容(如google)中的搜索字符串.问题是当我在搜索字符串中包含"ME"时,它会在内容中突出显示"i"标记(html斜体标记)和"Me".我创建了一个包含一些元素的文档,并在文档上运行了单词查询.例如XML内容:

         
          some data from me
          more data  from  somewhere by me 
         

我创建了一个文档,其中包含根节点"resources"和子元素"title"和"desc",并使用word-query搜索文档中的搜索字符串.

现在,当我搜索"some me"时,它会检索内容

         
          <<span class="highlight">some</span> data from <<span class="highlight">me</span>
          
          more data <i> from <i> somewhere by me              
         

网址:

localhost:9000/v1/search?q=some me&collection=Data&start=0&pageLength=10&options=Transformation&format=json

我正在使用cts:突出显示突出显示,有些事情如下:

cts:highlight($final-result, $query, fn:concat('',$cts:text,'')), $custom-config)

关于为什么html元素在这里被突出显示的任何想法?提前致谢.



1> Sam Mefford..:

您可能以文本格式插入文档,而不是xml格式.我可以通过以文本格式插入来重现您的问题:

xdmp:document-insert("test.xml", text {"
      some data from me
      more data  from  somewhere by me 
     "})

然后运行cts:突出显示该文档:

cts:highlight(doc("test.xml"), cts:parse("some me"), concat('', $cts:text, ''))

但是如果我以XML格式重新插入文档:

xdmp:document-insert("test.xml", 
      some data from me
      more data  from  somewhere by me 
     )

然后相同的cts:亮点效果更好:



   <span class="highlight">some</span> data from <span class="highlight">me</span>
   more data  from  somewhere by <span class="highlight">me</span> 

如果我添加来自@ehennum和@mholstege的建议,而是运行此cts:highlight:

cts:highlight(doc("test.xml"), cts:parse("some me"), {$cts:text})

然后我得到了我猜你想要的东西:



   <span class="highlight">some</span> data from <span class="highlight">me</span>
   more data  from  somewhere by me 

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有