ホームページ >バックエンド開発 >PHPチュートリアル >PHPがWebサービスを呼び出すときにXMLを解析するときに<と>が発生する問題の解決策
最近小規模なプロジェクトに取り組んでいたとき、Web サービスから XML データしか提供されなかった病院システムからデータを取得する必要がありました。
プログラムのデバッグの最終日、デモをしようとしていたときに、XML に余分な「<」があることがわかり、XML が解析できなくなりました。たくさんの方法を見つけました!
1. stripos() 関数を使用して、含まれる XML タグの開始位置を見つけます。
2. substr() 関数を通じてタグをインターセプトします。
3. str_replace() 関数を通じてタグを置き換えます。
この方法は少し面倒ですが、アイデアはまだ非常に明確ですが、XML 内に「<」を含むタグが複数ある場合、この方法はあまり役に立たないことが後でわかりました。
そこで、次のような通常のコールバック メソッドを考えました。
function search($match){
$match = str_replace("<", "@", $match[1]);
return $match
}
//$xml = simplexml_load_file("tes.xml"); //xml ファイルを読み込みます
$xml_str=file_get_contents("test.xml");
$xml_result=preg_replace_callback("/(.*? ;
主なことは、通常のコールバックを使用して山括弧 < を @ に置き換え、読み取りに戻るときに @ を <
に置き換えることです。これは簡単な解決策です。 ! !
上記では、PHP で Web サービスを呼び出す際の XML 解析の問題の解決策を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。