XML Validation error : EntityRef: expecting';'

ⅰ亾dé卋堺 提交于 2019-12-03 03:36:25

问题


<url>
  <loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo</loc>
</url>

error on line 102 at column 103: EntityRef: expecting';'

Not able to figure out what could be the problem.


回答1:


Your URL must be escaped.

& character is used in XML to insert a character reference with syntax &name; (note ; after name). Parser expects a ; but it can't find it (there are more available delimiters, this is just most common case).

Solution is then escaping (how it's done depends on language you use to generate that XML file) but final result must be something like this:

<url>
  <loc>http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&amp;checkingCourseFrom=preLogin#.U2DcKvmSySo</loc>
</url>

Note that plain & has been replaced with its escaped version &amp;. For further details see this simple article.

Another possible solution (if you don't want/you can't escape) is to enclose URL inside a CDATA section like this:

<url>
  <loc><![CDATA[http://www.ezed.in/ezed/courseDemoIntroPage.do?courseId=COU10000000138003530&checkingCourseFrom=preLogin#.U2DcKvmSySo]]></loc>
</url>



回答2:


Another way as below:

Instead of "CDATA" we could use htmlspecialchars PHP native function for url node. it will work few of xml feed they don't want CDATA in xml output so this will be helpful for someone.

Thanks




回答3:


I stumbled on the same problem today, if you are building the links with PHP you can use this function:

htmlspecialchars();

It will format the desired string for you to HTML chars so you can insert it as a <loc>.




回答4:


simply replace '&' with '& a m p;' without the spaces, I put it here!



来源:https://stackoverflow.com/questions/23422316/xml-validation-error-entityref-expecting

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!