2012-07-25 5 views
0

이미 내장 함수를 찾으려고 몇 시간을 보냈지만 결과는 없습니다.XML SOAP 응답을 데이터베이스에 삽입하십시오.

누구나 XML SOAP 요청의 전체 데이터 응답을 데이터베이스로 구문 분석하는 방법에 대한 경험이 있습니까?

내가 찾고있는 것은 PHP 기능을 내장하고 있습니다. 그렇게 할 수있는 함수가 있습니까? 아니면 내 자신으로해야합니까?

+1

원시 SOAP 응답 XML을 덤프하려고하는지, 아니면 전체 데이터 응답을 구문 분석한다는 의미입니까? – mellamokb

+0

예, SOAP로 응답을 데이터베이스에 삽입하도록 변환합니다. – thegrede

답변

0

누군가가 실제로 그런 일을하고 싶어하는 이유를 알 수는 없지만 extending the SoapClient class으로 해결할 수 있습니다. 이제는 응답에서 제공하는 XML 문자열을 얻고 원하는대로 처리하면됩니다.

추신 : 'trace' => TRUE 플래그를 설정 한 경우 here과 같이 $client->__getLastRequest()을 호출하면 SoapClient 클래스를 확장하지 않고도 호출 할 수 있습니다.

+0

목표는 SOAP 응답을 받았을 때 응답을 데이터베이스에 저장하려고 했으므로 대신 모든 데이터를 마누엘로 가져 와서 처리했습니다. SQL 데이터베이스에 XML 파일을 가져올 때와 마찬가지로 가능하면 빌트인 함수로 처리하고 싶습니다. 어쨌든 대답 해 주셔서 감사합니다. – thegrede

+0

그래서 XML 파일의 모든 리프 노드를 데이터베이스에 유지하고 싶습니까? 어디 보자 ... 어떻게 일반적인 방법으로 작동합니까? 나는 XML이 노드에있는 노드에 노드를 가질 수 있다는 것을 의미한다 ... 데이터베이스 테이블은 대개 정적이다. XML이 변경되면 어떻게 될까요? 필요에 따라 DB 구조를 변경하는 담당자는 누구입니까? DB 구조가 XML 구조 변경에 적응해야합니까? 응답 XML이 일부 SOAP 요청 (min_occurs = "0")에 대한 특정 노드를 생략하면 어떻게됩니까? 해당 테이블 셀에 NULL을 채워야합니까? –

+0

복잡한 EAV DB 구조를 선택할 수도 있지만 XML의 구조적 변경 사항을 DB에 반영하는 메커니즘을 구현할 수있는 일반적인 방법을 생각해보십시오. 기껏해야 XML 구조 변경을 DB에서 수동으로 처리 할 수는 있지만 데이터 유형 오류와 모든 종류의 모서리 사례를 처리해야합니다. XML이 복잡한 구조를 가지고 있다면 XSD 스키마를 DB 테이블로 자동 변환 할 수 있지만 XML을 따라가는 일반 코드를 작성해야합니다. –

관련 문제