2009-06-19 2 views
2

내 사이트의 관리자가 XML을 텍스트 영역에 추가하고 제출하여 데이터베이스 테이블에 저장할 수있는 웹 양식을 작성하고 있지만 XML 구문 분석에 가장 적합한 방법은 다소 혼란 스럽습니다.DOM을 유지하면서 XML을 구문 분석 할 때 자세한 오류 정보를 얻으려면 어떻게해야합니까?

PHP 스크립트는 XML을 구문 분석해야하며 구문 분석 오류가있는 경우 구문 분석기가 양식을 제출 한 관리자에게 중지 된 오류 메시지와 줄/열을 반환해야합니다. 이를 파싱 한 후 XPath를 사용하여 노드와 속성의 존재 여부에 대한 여러 검사를 실행하려면 DOM에 액세스해야합니다.

xml_create_parser()xml_parse()을 사용하는 경우 오류가 반환되면 자세한 오류 정보를 확인할 수 있습니다. 그러나 XML을 구문 분석 한 후에 XML의 DOM에 액세스 할 수 없습니다. 내가 읽은 바에 따르면 DOMDocument::loadXML()을 사용하면 구문 분석 오류에 대한 예외가 발생하지 않고 PHP 로그로 출력됩니다.

처음으로 xml_parse()을 시도한 다음 성공한 경우 DOMDocument::loadXML()을 실행하십시오. 파일의 크기가 10KB 미만이고 파일 크기가 10-20KB 미만인 경우를 고려해보십시오. 누구든지 더 나은 방법을 알고 있습니까?

답변

6

당신은 libxml_use_internal_errors을 사용할 수 있습니다 그리고있는 DOMDocument :: 부하 - 경우() libxml_get_errors()

<?php 
$xml = '<a> 
    <b>xyz</b> 
    <c> 
</a>'; 

libxml_use_internal_errors(true); 
$doc = new DOMDocument; 
if (!$doc->loadxml($xml)) { 
    $errors = libxml_get_errors(); 
    var_dump($errors); 
}
+0

감사와 자세한 오류 메시지를 조회 실패 -. 검색 할 때마다 사람들은 자신의 오류 처리기를 설정하고 오류/행 번호를 얻는 방법을 찾지 못했습니다. –

관련 문제