1

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

我的代码:

<?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.
4

2 回答 2

1

& 符号 (&) 和左尖括号 (<) 不得以其文字形式出现,除非用作标记分隔符,或者在注释、处理指令或 CDATA 部分中。

(参考)

改用这个

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

&必须编码为&amp;


或在CData部分中使用它。它说以下文本不是标记,而是字符数据。

<loc><![CDATA[&eacute; test &egrave;]]></loc>
于 2012-08-17T03:41:43.747 回答
1

您的意思是要将 HTML 实体放入 XML 中还是将文字字符放入 XML 中?

XML 定义的唯一实体是:

  • &
  • <
  • >

没有其他的。并且只有前两个对于表示 XML 文档中的任何 Unicode 文本是绝对必要的。在 XML 文本中包含 literal 和 是完全可以的>'"

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

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

于 2012-08-17T03:50:25.683 回答