0

CDATA を含む XML があります。

たとえば、タイトル:<title><![CDATA[School&rsquo;s Latest News]]></title>

simplexml_load_string を使用して完全な XML ドキュメントを解析すると、(string) を使用して CDATA 値にアクセスできます。たとえば、次のタイトルを取得します。

$title = (string)$news_xml -> {'news'} -> {'title'}

私が抱えている問題は、' が ' ではなく ' として表示されることです。

html_entity_decode を使用すると、まったく同じ結果が得られます。

simplexml_load_string を呼び出すときに LIBXML_NOCDATA オプションを使用すると、print_r を使用して CDATA を見ることができ、(string) を明示的に呼び出す必要はありませんが、HTML エンティティはまだ文字化けしています。

これが機能しない理由はありますか?

4

1 に答える 1

1

&rsquo;Unicode 文字 (値 0x8217) です。http://www.rsquo.net/ も参照してください。

ブラウザーに送信する場合 (私が推測するに、 の意味だと思いますpresented as)、ページのエンコーディングが UTF-8 に設定されていることを確認してください。

于 2012-12-06T11:35:09.713 に答える