0

PHP SimpleXMLElement を使用して XML オブジェクトを作成しています

に完全な XML が$RAWResponseあるので、

$oXMLResponse = new SimpleXMLElement($RAWresponse);

私が取得している XML は Web サービスからのものです。XML に「&」などの無効な文字が含まれていることがわかりました。

この問題に関する投稿はたくさんありますが、どれも機能しません。私は htmlentities() を試しましたが、これは XML 要素を開始および囲む '<' と '>' を含むすべての文字をエスケープします。

最後に、この関数を使用しました:

$some_special_chars = array("&");
$replacement_chars  = array("&amp;");
$RAWresponse    = str_replace($some_special_chars, $replacement_chars, $RAWresponse);

$oXMLResponse = new SimpleXMLElement($RAWresponse);

これは機能しますが、他の特別な文字を取得すると壊れてしまうため、愚かな解決策です。より良い解決策はありますか?SimpleXMLElement が壊れる理由がわかりません。警告または何かを表示するだけです。

4

1 に答える 1