2012-11-13 2 views
0

머리말 :이 질문을 게시하기 전에 철저하게 검색하고 읽었습니다. 나는 몇 가지 질문을 내 것과 비슷한 것으로 보았습니다. 심지어는 같은 오류 메시지가 있었지만 대부분은 "단일 루트 요소 필요"와 같은 간단한 대답을 가지고있었습니다. 나는이 솔루션을 여기에 적용 할 수 없어서 게시하고 있습니다.PHP로 XML 파싱하기 - 오류 : 문서 끝에 여분의 콘텐츠가 있습니다.

PHP와 cURL을 사용하여 XML 형식의 데이터를 보내고 XML 형식의 응답을받는 .NET 웹 서비스를 사용하고 있습니다. 그것은 올바르게 작동하고 .NET 서비스 끝 부분에 좋은 쓰기 검증을했습니다. 내가 사용하는 경우 :

$xml_obj = simplexml_load_string($result); 
print $xml_obj->asXML() 

응답 XML 반환을 브라우저에 같은 :

enter image description here

은 내가 잠재적 인 오류가있는 의미있는 일을 할 수 있도록하는 XML을 구문 분석을 시도하고 있어요/또는 성공적인 응답. 이 방법을 사용하려고합니다.

$xml = new SimpleXMLElement($xml_obj); 
$is = $xml->xpath('*/i'); 

foreach($is as $i) { 
    echo $i['title'], ': ', $i['description'], "\n"; 
} 

최상의 접근 방법 일 수도 있고 그렇지 않을 수도 있습니다. 나는 이것을 실행하면,이 메시지가 나타납니다 : (I 찾아 드릴 수 없습니다 오류 메시지가 표시하는 것 같지만)

enter image description here

그것은 문제가 응답 XML에 있는지 여부를 나에게 불분명를, 또는 나는 XML을 잘못된 방식으로 구문 분석하려고 시도하고있다.

도움 주셔서 감사합니다.

+0

. 오류는 지속됩니다. 거기 계신 분이 계몽을 제공 할 수 있습니까? – user1647550

답변

0

일반 텍스트 출력과 XML 출력을 섞어서 사용할 수 없습니다. 둘 중 하나를 사용해야합니다.

일반 텍스트 출력 :

foreach($is as $i) { 
    echo $i['title'], ': ', $i['description'], "\n"; 
} 

은 결과 페이지의 소스보기 당신은 잘못된 (일반 텍스트) 응답을 분명히 볼 것입니다.

당신이 XML을 출력하는 경우, 내가 뭔가 더 같은 기대 : 나는 그것을 시도 생각할 수있는 모든 변화를 시도했습니다,없이 결과,이 XML을 구문 분석의 모든 방법을 시도

foreach($is as $i) { 
    echo '<title>', $i['title'], '</title><description>', $i['description'], '</description>'; 
} 
+0

답변 해 주셔서 감사합니다. 나는 그것을 시도했지만, 불행히도, 여전히 같은 오류 메시지가 나타납니다. – user1647550

+0

이 답변은 많은 가정을했기 때문에 불완전합니다. 따라서 문제가 직접 해결되지는 않습니다. 근본 문제를 확인하는 것이 목적입니다. –

관련 문제