XQuery和html条件注释

XQuery和html条件注释,xquery,conditional-comments,marklogic,Xquery,Conditional Comments,Marklogic,在阅读了这里的其他一些问题并尝试了它们的解决方案之后,我仍然对XQuery有这个问题 我们正在使用条件注释,以查看是否正在使用IE。我们正在动态地构建指向javascript文件的路径,如下所示 <!--[if lte IE]> <script type="text/javascript" src="{$layout:cdnPath}/scripts/browser-detect-admin.js">&nbsp;</script> <![endi

在阅读了这里的其他一些问题并尝试了它们的解决方案之后,我仍然对XQuery有这个问题

我们正在使用条件注释,以查看是否正在使用IE。我们正在动态地构建指向javascript文件的路径,如下所示

<!--[if lte IE]>
<script type="text/javascript" src="{$layout:cdnPath}/scripts/browser-detect-admin.js">&nbsp;</script>
<![endif]-->

但是,脚本元素似乎被评估为文本,而不是构建到javascript的正确路径。它认为{$layout:cdnPath}/scripts/browser-detect-admin.js是文件的路径。我不明白为什么


我在IE7、8和IE9兼容模式下对此进行了测试。

这是正确的。此类表达式模板不会在文字注释中计算。请改用注释构造函数:

comment {concat('[if lte IE]>
<script type="text/javascript" src="', $layour:cdnPath, '/scripts/browser-detect-admin.js">&nbsp;</script>
<![endif]')}
注释{concat('[如果lte IE]>

这是正确的。此类表达式模板不会在文字注释中计算。请改用注释构造函数:

comment {concat('[if lte IE]>
<script type="text/javascript" src="', $layour:cdnPath, '/scripts/browser-detect-admin.js">&nbsp;</script>
<![endif]')}
注释{concat('[如果lte IE]>

它能工作!奇怪的是,它的工作方式是我们让它停止的。所以谁知道呢。这可能是一个bug修复,尽管我不知道。阅读它对我来说似乎相当清楚。注释是
DirCommentContents:=((Char-“-”)|(“-”(Char-“-”))*
。您预期的是
EnclosedExpr
行为,这在直接构造的注释中是不可用的。它可以工作!奇怪的是它的工作方式与我们让它停止的方式相同。所以谁知道呢。这可能是一个错误修复,尽管我不知道。阅读它对我来说似乎相当清楚。注释是
“”
DirCommentContents:=((Char-“-”)|(“-”(Char-“-”))*
。您预期的是
EnclosedExpr
行为,这在直接构造的注释中不可用。