【发布时间】:2012-07-05 19:04:26
【问题描述】:
我的脚本构建了一个字符串,我需要将其输出到xhtml,但xdmp:unquote() 似乎不喜欢带引号的属性值,特别是引号。我最终在输出中的实际引号 (") 应该是引号字符实体。
这是字符串:
let $title_opts := if ( "M.D." eq $acad_title )
then
'<option selected="SELECTED" value="M.D.">M.D.</option><option value="D.O.">D.O.</option>'
else if ( "D.O." eq $acad_title )
then
'<option value="M.D.">M.D.</option><option selected="SELECTED" value="D.O.">D.O.</option>'
else
'<option value="M.D.">M.D.</option><option value="D.O.">D.O.</option>'
和输出:
return <select name="title" id="title">
{ xdmp:unquote( $title_opts ) }
</select>
xdmp:unquote() 的尖括号很好,但引号没有。如何让所有内容正确显示?
【问题讨论】:
-
您可以使用 xdmp:unquote($title_opts, (), "repair-full"),但这会导致额外的 xml-pi。您自己直接使用元素构造函数的解决方案要好得多。您可以通过将 if 从外部元素 select 移动到该元素内来进一步改进它,这样您只需要一个 select 元素,并且只在适当的地方应用 selected 属性。