我想在php中生成一个xml页面但我在解码/编码特殊字符时遇到了问题,例如""é""
myCode:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc> é test è </loc>
<priority>1.000</priority>
<changefreq>always</changefreq>
</url>
</urlset>
但是我收到了这条消息
This page contains the following errors:
error on line 4 at column 19: Entity 'eacute' not defined
Below is a rendering of the page up to the first error.
答案 0 :(得分:1)
&符号(&amp;)和左尖括号(&lt;)不得 以字面形式出现,除非用作标记分隔符, 或者在评论,处理指令或CDATA部分内。
<强> (Reference) 强>
改为使用
<loc>&eacute; test &egrave;</loc>
&
必须编码为&
或在CData部分内使用它。它表示以下文本不是标记,而是字符数据。
<loc><![CDATA[é test è]]></loc>
答案 1 :(得分:1)
您是说要将XML实体放在XML中的XML或文字字符中吗?
XML定义的唯一实体是:
没有别的。并且只有前两个对于表示XML文档中的任何Unicode文本是非常必要的。在XML文本中包含文字>
,'
和"
是完全可以的。
要在XML文档中包含文字字符,只需将它们放在那里,并确保用于以字节格式生成文档的编码与声明中的编码相同。在元素和属性名称中必须遵守某些字符类,并且您仍然必须记住使用&amp; amp; amp; amp; amp; amp;和&amp; lt;实体而不是文字。