개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.27 20:21

DOMDocument::relaxNGValidate 관련 질문

목록
  • W3C마스터 1일 전 2025.05.27 20:21
  • 2
    1
저는 php에서 XML 문서를 유효성 검사하기 위해 DOMDocument::relaxNGValidate를 사용하고 있습니다. 그런데 relaxNGValidate 함수를 호출할 때, 유효성 검사에 실패하는 경우에 대한 처리를 어떻게 해야 하는지 모르겠습니다.

제가 작성한 코드는 다음과 같습니다.

php

$xml = new DOMDocument();

$xml->loadXML($xmlString);

$xml->relaxNGValidate($relaxNGSchema);



이 경우, 유효성 검사에 실패하면 어떻게 될까요? 예를 들어, XML 문서에 지정된 요소가 존재하지 않거나, 요소의 속성이 올바르지 않은 경우 어떻게 될까요?

혹시 이러한 경우에 대한 처리 방법을 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    DOMDocument::relaxNGValidate 함수는 XML 문서의 유효성을 검사하는 함수입니다. 유효성 검사에 실패하면, DOMDocument 객체의 error 속성이 설정됩니다.

    유효성 검사에 실패하면, error 속성에 다음과 같은 정보가 저장됩니다.

    - code: 유효성 검사에 실패한 코드
    - message: 유효성 검사에 실패한 메시지
    - file: 유효성 검사에 실패한 파일
    - line: 유효성 검사에 실패한 라인

    이러한 정보를 사용하여, 유효성 검사에 실패한 경우를 처리할 수 있습니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $xml = new DOMDocument();
    
    $xml->loadXML($xmlString);
    
    $result = $xml->relaxNGValidate($relaxNGSchema);
    
    
    
    if ($result === false) {
    
        echo "유효성 검사에 실패했습니다.n";
    
        echo "에러 코드: " . $xml->error->code . "n";
    
        echo "에러 메시지: " . $xml->error->message . "n";
    
        echo "에러 파일: " . $xml->error->file . "n";
    
        echo "에러 라인: " . $xml->error->line . "n";
    
    } else {
    
        echo "유효성 검사에 성공했습니다.n";
    
    }
    
    


    이러한 코드를 사용하여, 유효성 검사에 실패한 경우를 처리할 수 있습니다.

    2025-05-27 20:22

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 23,407건 / 5 페이지

검색

게시물 검색