> 백엔드 개발 > PHP 튜토리얼 > PHP가 웹 서비스를 호출할 때 XML을 구문 분석할 때 < 및 >가 발생하는 해결 방법

PHP가 웹 서비스를 호출할 때 XML을 구문 분석할 때 < 및 >가 발생하는 해결 방법

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-29 09:04:27
원래의
1040명이 탐색했습니다.

최근 소규모 프로젝트를 진행하면서 웹 서비스의 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("/(.*?)/s", "search", $xml_str);//일반 콜백
$xml = simplexml_load_string( $ xml_result);
print_r($xml);exit;

아이디어를 간략하게 설명합니다.

주로 일반 콜백을 사용하여 꺾쇠 괄호를 @로 바꿉니다. 검색할 때 @를 <

로 바꾸면 됩니다. ! !

위 내용은 PHP에서 webservice를 호출할 때 xml을 파싱할 때 발생하는 문제에 대한 해결 방법을 관련 내용과 함께 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿