CDATA中存在XQuery包装变量

CDATA中存在XQuery包装变量,xquery,exist-db,Xquery,Exist Db,我想知道是否可以将变量(可能包含凌乱的html)的内容包装到cdata部分 我将XQuery与eXist一起使用,但似乎无法使其正常工作 我试过了 <![CDATA[ $data ]]> <![CDATA[ {$data} ]]> 现在有人知道应该怎么做吗? 提前谢谢。@Alejandro说得对。见普里西拉·沃尔姆斯利的书,第280-281页。“CDATA节中的所有文本都是按字面意思理解的;不可能在CDATA节中包含封闭的表达式。” 如果您想通过修复格式错误的位来处理“

我想知道是否可以将变量(可能包含凌乱的html)的内容包装到cdata部分

我将XQuery与eXist一起使用,但似乎无法使其正常工作

我试过了

<![CDATA[ $data ]]>
<![CDATA[ {$data} ]]>
现在有人知道应该怎么做吗?
提前谢谢。

@Alejandro说得对。见普里西拉·沃尔姆斯利的书,第280-281页。“CDATA节中的所有文本都是按字面意思理解的;不可能在CDATA节中包含封闭的表达式。”


如果您想通过修复格式错误的位来处理“凌乱的HTML”,您可能希望查看NekoHTML支持的函数。传递凌乱的HTML字符串,您将在另一端得到格式良好的XML节点。

@Alejandro是对的。见普里西拉·沃尔姆斯利的书,第280-281页。“CDATA节中的所有文本都是按字面意思理解的;不可能在CDATA节中包含封闭的表达式。”


如果您想通过修复格式错误的位来处理“凌乱的HTML”,您可能希望查看NekoHTML支持的函数。传递凌乱的HTML字符串,另一端将得到格式良好的XML节点。

如果要将一些格式良好但任意的HTML编码为字符串,例如要包含在KML描述中,请使用util:serialise()

例如

xquery版本“1.0”;
声明命名空间util=”http://exist-db.org/xquery/util";
让$data:=stuff
返回
util:serialize($data,“method=xml”))

其效果与将XML封装在CDATA中,并对保留的XML字符进行编码的效果相同。

如果要将一些格式良好但任意的HTML编码为字符串,例如要包含在KML描述中,请使用util:serialise()

例如

xquery版本“1.0”;
声明命名空间util=”http://exist-db.org/xquery/util";
让$data:=stuff
返回
util:serialize($data,“method=xml”))

其效果与将XML包含在CDATA中,并对保留的XML字符进行编码的效果相同。

Literal CDATA部分就是这样。对于输出动态CDATA节没有标准指令,也没有
CDATA节元素
声明,因为XSLT2.0Literal CDATA节就是这样。在XSLT2.0中,没有用于输出动态CDATA节的标准指令,也没有
CDATA节元素
声明
xquery version "1.0";
declare namespace request="http://exist-db.org/xquery/request";

let $data := request:get-parameter("content" , "")
return <![CDATA[ {$data} ]]>
xquery version "1.0";
declare namespace util="http://exist-db.org/xquery/util";

let $data := <div><h1>stuff</h1><a href="url"> <img src="image"/></a></div>
return
   util:serialize($data,"method=xml"))