The entity name must immediately follow the ‘‘ in the entity reference.
创始人
2025-06-01 21:18:57
0

产生问题的点:


test-java-23-1falsetruefalse

上面是我在构建任务是生成的xml文件,以string形式传递给接口但是接口验证产生问题,问题的点是这样的,

问题原因:

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

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

如果&which 后面没有#(例如 ,  , 等),XML 解析器将隐式查找五个预定义实体名称 lt, gt, amp,quot和 之一apos,或任何手动定义的实体名称。但是,在您的特定情况下,您使用&的是 JavaScript 运算符,而不是 XML 实体。这完全解释了您遇到的 XML 解析错误:

实体名称必须紧跟实体引用中的“&”

解决办法:

本质上,您在错误的地方编写了 JavaScript 代码,一个 XML 文档而不是一个 JS 文件,因此您应该相应地转义所有 XML 特殊字符。必须&转义为& 例如:&& 转义之后应该是:&&
因此,在您的特定情况下,

if (Modernizr.canvas && Modernizr.localstorage && 

必须成为

if (Modernizr.canvas && Modernizr.localstorage &&

使其 XML 有效。

然而,这使得 JavaScript 代码更难阅读和维护。如果您想在 XML 文档中继续使用&而不是&JavaScript 代码,那么您应该将 JavaScript 代码放在字符数据 (CDATA) 块中。因此,在 JSF 术语中,这将是:



XML 解析器会将块的内容解释为“普通”字符数据而不是 XML,因此“按原样”解释 XML 特殊字符。但是,更好的方法是将 JS 代码放在它自己的 JS 文件中,该文件由