2017-11-13 7 views
2

XML API 응답을 구문 분석하기 위해 simplexml_load_string()을 사용합니다.simplexml_load_string() StartTag : 잘못된 요소 이름

$lien = "http://myresponseurl"; 
$page = simplexml_load_string($this->get_data($lien)); 

Everythink이 경우를 제외하고, 좋은 협력 : 텍스트가 돌아갈

<libdivision><1500 Poule H</libdivision> 

는 "< 1500 Poule H"해야하지만은 "<"caractère는 XML에도 시작 태그의 상징 ...

"< 1500 Poule H"을 오류없이 대답을 되돌리려면 어떻게해야합니까? 도움을

Warning: simplexml_load_string(): Entity: line 4: parser error : StartTag: invalid element name 
Warning: simplexml_load_string(): <libdivision><1500 Poule G</libdivision> 
Warning: simplexml_load_string():^

덕분에

답변

1
<libdivision><1500 Poule H</libdivision> 

이 유효하지 않은 XML이다. API 제공 업체가이를 수정해야합니다. 이는 API의 분명한 버그이며 잘못된 형식의 데이터로 작업하는 것은 클라이언트의 책임입니다.

는 CDATA 필드에 랩 :

<libdivision><![CDATA[<1500 Poule H]]></libdivision> 

을 또는 기호 인코딩 : 두 가지 옵션은 @DanFromGermany하지만, 버그 수정을 기다리고에서

<libdivision>&lt;1500 Poule H</libdivision> 
+0

난 당신과 동의를 나는 그것을 처리해야만한다. : S 내가 할 수있는 일은 아무것도 없다. – Macbernie

+1

@Macbernie 여러분은 simplexml에서 데이터를로드하기 전에'>'문자가 없으면'<'문자를 대체 할 수 있습니다. 그러나 안전하게 작동하지 않을 수도 있으므로 위험합니다. 가장 좋은 방법은 제공자가이를 더 빨리 수정하도록 기다리는 것입니다. – DanFromGermany