0

我的 XML 向我显示有关未定义实体的错误,因为我的数据显示特殊字符,例如 & eacute; 和类似的......我该如何解决?

<track href="file.mp3" title="<?php echo $title;?> <?php echo $artist;?>" target="http://www.site.com" rel="hdefault.jpg">
  <meta>
    <![CDATA[ <a href="http://www.site.com/search" target="_blank">More info</a> ]]>
  </meta>
</track>

我知道我必须使用 CDATA 但如果我尝试:

title="<![CDATA[ <?php echo $title;?> ]]>"

它向我展示了:

第 7 行第 19 列的错误:属性值中不允许未转义的“<”

4

1 回答 1

3

&eacute;在 XML 中没有任何意义,除非有一个 DTD 描述了“eacute”是什么字符,并且XML 解析器是一个 DTD 解析器(这是一个很大的假设)。

如果您想在 XML 文档中可靠地表示一个 é,那么您需要:

  • 使用文字 é
  • 使用数字字符引用

如果要在 XML 文档中嵌入 HTML,则必须使用:

  • 围绕元素内容(不是属性)的 CDATA 标记。(正如您为 meta 元素的值所做的那样)
  • HTML 中特殊字符的字符引用。&表示为&amp;所以如果您想&eacute;在 XML 文档中表示 HTML,那么您需要&amp;eacute;.

title 属性可能是“标题”而不是“标题的 HTML 表示”,因此在这里使用文字 é 可能是您最好的选择。

不幸的是,您的原始数据中似乎包含 HTML 而不是文本,因此您可能必须先清理传入的数据才能使用它。

于 2012-12-19T13:21:11.587 回答