2

PHPでSimpleXMLを作成して、HTML/XMLエンティティをそれぞれの文字に置き換えるにはどうすればよいですか?

次の XML ドキュメントが文字列になっているとします。

$data = '<?xml version="1.0" encoding="ISO-8859-1"?><example>Tom &amp; Jerry</example>'

明らかに、SimpleXml を にデコードする&amp;必要があり&ます。デフォルトでは行いません。私はこれらの2つの方法を試しましたが、どちらもうまくいきませんでした:

$xml = new SimpleXMLElement($data);
$xml = new SimpleXMLElement($data, LIBXML_NOENT);

XML エンティティをデコードする最良の方法は何ですか? XMLパーサーがそれを行うべきだと思います.解析html_entity_decode前に実行することは避けたいです(実際、どちらも機能しません)。これは文字列のエンコーディングに問題があるのでしょうか? もしそうなら、どうすればそれを追跡して修正できますか?

4

1 に答える 1

0

これがいくつかのケースで機能するかどうかはわかりませんが、おそらく...

$xml = new SimpleXMLElement(html_entity_decode($data));

http://www.php.net/manual/en/function.html-entity-decode.php

于 2013-08-07T15:34:40.060 に答える