栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

解析XHTML时出错:元素的内容必须包含格式正确的字符数据或标记

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

解析XHTML时出错:元素的内容必须包含格式正确的字符数据或标记

Facelets是基于XML的视图技术,它使用XHTML+XML生成HTML输出。XML具有五个特殊字符,XML解析器对其进行了特殊处理:

  • <
    标签的开始。
  • >
    标签的结尾。
  • "
    属性值的开始和结束。
  • '
    属性值的替代开始和结束。
  • &
    实体的开头(以结尾
    ;
    )。

在这种情况下

<
,XML解析器会隐式地寻找标签名称和结束标签
>
。但是,在您的特定情况下,您使用的
<
是Javascript运算符,而不是XML实体。这完全解释了您遇到的XML解析错误:

元素的内容必须包含格式正确的字符数据或标记。

本质上,您在错误的位置编写了Javascript代码,而不是JS文件而不是JS文件,因此您应该相应地转义所有XML特殊字符。在

<
必须进行转义为
&lt;

因此,基本上,

for (var i = 0; i < length; i++) {

必须成为

for (var i = 0; i &lt; length; i++) {

使它对XML有效。

但是,这使Javascript代码更难以阅读和维护。如Mozilla开发人员网络出色的文档“为XHTML编写Javascript”所述,您应该将Javascript代码放在字符数据(CDATA)块中。因此,按照JSF的说法,它将是:

<h:outputscript>    <![CDATA[        // ...    ]]></h:outputscript>

XML解析器将把块的内容解释为“plain vanilla”字符数据而不是XML,因此将XML特殊字符“按原样”解释。

但是,更好的方法是将JS代码放在自己的JS文件中,该文件应由

<scriptsrc>
或以JSF的形式包含在其中
<h:outputscript>

<h:outputscript name="functions.js" target="head" />

这样,您无需担心JS代码中的XML特殊字符。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号