验证失败:"EntityRef:expecting';'"

Lax*_*idi 11 xml validation xml-validation character-reference

嗨,我有一些不会验证的XML.我把这个问题缩小到了这个范围:

<script type="text/javascript">document.getelementbyid("oxm-1f4a4485-5a1d-45f9-a989-9c65a0b9ceb6").src="http://bid.website.net/display?l=h4siaaaaaaaaad2nmq6cqbrenycw7qjyolfccxmregvcoae0u0sly_agtvaewwn4bg_havwbnebpvmzkkzra_kzzdvoloq4u-hjnp7sii0rxcbzz5vl5kxsrds6wtsfbxmcr9chysuhqbecuckb8cvx4m-pbcxugtdrll6d3dqtihnqukth2yvdkptr67cuzfvlxjlinkul9634lpal_h4mwhso8aabzhw1cdcwjxl6xivgv8agrjxjc_gaaaa==&p=h4siaaaaaaaaabxkmq7cmaxaurcqjjrrsfqqsrm7x3fsrwyvosda8qnj_3ojfgb49o45pblq7e80syzjhopggso9wyzpcpntzkxk1ldtbbi7otmxfj9da1wpjcf10vtxdj9e5_utyj19k2lfssepld5agnqaaaa=&url=http%3a%2f%2flocalhost%2fproject-debug%2fproject.html";</script>
Run Code Online (Sandbox Code Playgroud)

我把它放在一个XML验证器中,它吐出来:

此页面包含以下错误:第16行第1行的错误:EntityRef:expecting';'

任何关于失踪';'的想法 应该去?还有其他问题吗?

Joh*_*ica 26

&的网址中有未转义的&符号.它们要么需要(a)更改为字符实体(&amp;),要么(b)包含在CDATA部分中.

CDATA部分允许您保留非&转义等特殊字符,因此这是最简单的:

<script type="text/javascript">
// <![CDATA[
    document.getElementById(...).src="...";
// ]]>
</script>
Run Code Online (Sandbox Code Playgroud)

除了确切的字符序列外,您可以在CDATA部分中包含任何内容]]>.这些//注释是为了确保不理解CDATA部分的浏览器忽略<![CDATA[]]>标记.

顺便说一句,JavaScript区分大小写.那应该getElementById不是getelementbyid.