mbr*_*ort 7 xml xquery marklogic
我有一个xQuery类型的变量xs:string,带有编码的HTML片段的值(twitter推文的内容).它看起来像这样:
头条新闻 - 今日• AP来源:< b>奥巴马</b> 选择正义职位撤回:新闻 - 世界其他地方 - < a href =" http://shar.es/mqMAG">http://shar.es/mqMAG</a> ;
当我尝试在HTML块中编写它时,我需要转义字符串,以便浏览器解释HTML片段.相反,字符串按原样写出来,浏览器将其渲染为文本(所以你看到<a href ="blah ....).这就是我写出这个字符串的方式:
{$条目/原子:内容/文本()}
如何将未转义的字符取消编码,以便写入<而不是< ?
我试图做这样的替换,但它总是取代< 与< !
fn:replace($ s,"<","<")
取决于您使用的XQuery处理器...最简单的方法是使用具有可以为您处理此问题的扩展的处理器。例如,使用Saxon和以下XML:
<a><c>asdf</c></a>
Run Code Online (Sandbox Code Playgroud)
您可以编写一个使用该函数执行您想要的操作的XQuery :saxon:parse()
declare namespace saxon = "http://saxon.sf.net/";
<a>{
saxon:parse(doc('test.xml')/a)
}</a>
Run Code Online (Sandbox Code Playgroud)
其结果是:
<a>
<c>asdf</c>
</a>
Run Code Online (Sandbox Code Playgroud)
我认为大多数(?)XQuery处理器都会有一个扩展来为您执行此操作。希望有帮助。
| 归档时间: |
|
| 查看次数: |
6174 次 |
| 最近记录: |