<url>
<loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo</loc>
</url>
在第102行第103列出现错误:EntityRef: 预期';'。
无法确定问题所在。
<url>
<loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo</loc>
</url>
在第102行第103列出现错误:EntityRef: 预期';'。
无法确定问题所在。
您的 URL 必须进行转义。
& 字符在 XML 中用于插入一个带有语法 &name;
的字符引用(注意名称后面有 ;)。解析器期望一个 ;,但找不到它(存在更多可用的分隔符,这只是最常见的情况)。
解决方法是进行转义(如何进行取决于您用于生成该 XML 文件的语言),但最终结果必须类似于这样:
<url>
<loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo</loc>
</url>
请注意,普通的&
已被替换为其转义版本&
。更多详细信息请参见这篇简单文章。
另一个可能的解决方案(如果您不想/不能转义)是将URL放在一个CDATA节中,像这样:
<url>
<loc><![CDATA[http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo]]></loc>
</url>
PHP
的原生函数htmlspecialchars
来替代"CDATA
",用于url节点。对于一些不希望在xml输出中使用CDATA
的xml源,这将非常有帮助。今天我遇到了同样的问题,如果你正在使用PHP构建链接,你可以使用这个函数:
htmlspecialchars();
该功能将为您格式化所需字符串,以便您可以将其作为 <loc>
插入HTML字符。