XML中特殊字符的解码/编码

时间:2012-08-17 03:37:11

标签: php xml encoding

我想在php中生成一个xml页面但我在解码/编码特殊字符时遇到了问题,例如""é""

myCode:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
 <url>
    <loc> &eacute; test &egrave; </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.

2 个答案:

答案 0 :(得分:1)

  

&符号(&amp;)和左尖括号(&lt;)不得   以字面形式出现,除非用作标记分隔符,   或者在评论,处理指令或CDATA部分内。

<强> (Reference)

改为使用

<loc>&amp;eacute; test &amp;egrave;</loc>

&必须编码为&amp;


CData部分内使用它。它表示以下文本不是标记,而是字符数据。

<loc><![CDATA[&eacute; test &egrave;]]></loc>

答案 1 :(得分:1)

您是说要将XML实体放在XML中的XML或文字字符中吗?

XML定义的唯一实体是:

  • &放大器;放大器;
  • &安培; LT;
  • &安培; GT;
  • &安培; QUOT;
  • &安培;者;

没有别的。并且只有前两个对于表示XML文档中的任何Unicode文本是非常必要的。在XML文本中包含文字>'"是完全可以的。

要在XML文档中包含文字字符,只需将它们放在那里,并确保用于以字节格式生成文档的编码与声明中的编码相同。在元素和属性名称中必须遵守某些字符类,并且您仍然必须记住使用&amp; amp; amp; amp; amp; amp;和&amp; lt;实体而不是文字。

http://www.w3schools.com/xml/xml_encoding.asp