0

データに & eacute; のような特殊な文字が表示されるため、XML で定義されていないエンティティに関するエラーが表示されます。および類似のもの...どうすれば修正できますか?

<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;?> ]]>"

それは私を示しています:

19 列目の 7 行目のエラー: エスケープされていない '<' は属性値では許可されていません

4

1 に答える 1

3

&eacute;「eacute」という文字が何であるかを説明するDTDがなく、XMLパーサーがDTD解析文字(ifが大きい場合)でない限り、XMLでは意味がありませ

XMLドキュメントでéを確実に表現したい場合は、次のいずれかを行う必要があります。

  • 文字通りのéを使用する
  • 数値文字参照を使用する

HTMLをXMLドキュメントに埋め込む場合は、次のいずれかを使用する必要があります。

  • 要素(属性ではない)のコンテンツの周りのCDATAマーカー。(メタ要素の値に対して行っているように)
  • HTML内の特殊文字の文字参照。&はで表されるため、XMLドキュメントで&amp;HTMLを表現する場合は、が必要になります。&eacute;&amp;eacute;

title属性は、おそらく「タイトルのHTML表現」ではなく「タイトル」を意図しているため、ここではリテラルéを使用するのがおそらく最善の策です。

残念ながら、生データにはテキストではなくHTMLが含まれているように見えるため、使用する前に受信データをクリーンアップする必要がある場合があります。

于 2012-12-19T13:21:11.587 に答える