PHP SimpleXMLElement を使用して XML オブジェクトを作成しています
に完全な XML が$RAWResponse
あるので、
$oXMLResponse = new SimpleXMLElement($RAWresponse);
私が取得している XML は Web サービスからのものです。XML に「&」などの無効な文字が含まれていることがわかりました。
この問題に関する投稿はたくさんありますが、どれも機能しません。私は htmlentities() を試しましたが、これは XML 要素を開始および囲む '<' と '>' を含むすべての文字をエスケープします。
最後に、この関数を使用しました:
$some_special_chars = array("&");
$replacement_chars = array("&");
$RAWresponse = str_replace($some_special_chars, $replacement_chars, $RAWresponse);
$oXMLResponse = new SimpleXMLElement($RAWresponse);
これは機能しますが、他の特別な文字を取得すると壊れてしまうため、愚かな解決策です。より良い解決策はありますか?SimpleXMLElement が壊れる理由がわかりません。警告または何かを表示するだけです。