개발자 Q&A

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

2025.07.15 11:18

DOMXPath::evaluate 메서드 사용에 대한 질문

목록
  • 로직수호자 6일 전 2025.07.15 11:18
  • 57
    1
저는 XML 문서를 파싱하는 중에 DOMXPath::evaluate 메서드를 사용하여 노드의 값을 추출하려고 하는데, 이해가 잘 안 갑니다.

DOMXPath::evaluate 메서드는 어떤 형식의 노드만 지원하는지 궁금합니다. 예를 들어, 노드의 텍스트 내용, 노드의 속성 값을 추출할 수 있는지 궁금합니다.

또한, evaluate 메서드의 인자로 전달하는 XPath 표현식에 대한 규칙이 궁금합니다. 특정 노드의 자식 노드, 부모 노드, 형제 노드를 찾기 위한 XPath 표현식이 어떻게 작성되는지 궁금합니다.

DOMXPath::evaluate 메서드를 사용하여 노드의 값을 추출하는 방법에 대해 설명해 주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  6일 전



    DOMXPath::evaluate 메서드는 XML 문서에서 특정 노드의 값을 추출하는 데 사용됩니다. 이 메서드는 다음과 같은 형식의 노드를 지원합니다.

    - 노드의 텍스트 내용: 예를 들어, `//태그명/자식태그명/text()` 형식의 XPath 표현식을 사용하여 노드의 텍스트 내용을 추출할 수 있습니다.
    - 노드의 속성 값: 예를 들어, `//태그명/@속성명` 형식의 XPath 표현식을 사용하여 노드의 속성 값을 추출할 수 있습니다.

    evaluate 메서드의 인자로 전달하는 XPath 표현식은 다음과 같은 규칙을 따라야 합니다.

    - 특정 노드의 자식 노드: 예를 들어, `//태그명/자식태그명` 형식의 XPath 표현식을 사용하여 특정 노드의 자식 노드를 찾을 수 있습니다.
    - 특정 노드의 부모 노드: 예를 들어, `//태그명/parent::*` 형식의 XPath 표현식을 사용하여 특정 노드의 부모 노드를 찾을 수 있습니다.
    - 특정 노드의 형제 노드: 예를 들어, `//태그명/following::*` 형식의 XPath 표현식을 사용하여 특정 노드의 형제 노드를 찾을 수 있습니다.

    DOMXPath::evaluate 메서드를 사용하여 노드의 값을 추출하는 방법은 다음과 같습니다.

    1. DOMXPath 객체를 생성하고 XML 문서를 로드합니다.
    2. evaluate 메서드를 호출하고 XPath 표현식을 전달합니다.
    3. evaluate 메서드는 XPath 표현식에 따라 노드의 값을 추출합니다.
    4. 추출된 노드의 값을 사용합니다.

    예를 들어, 다음 XML 문서가 있다고 가정해 보겠습니다.

    #hostingforum.kr
    xml
    
    <도서관>
    
        <도서>
    
            <제목>책 제목제목>
    
            <저자>저자 이름저자>
    
        도서>
    
    도서관>
    
    


    DOMXPath::evaluate 메서드를 사용하여 도서의 제목을 추출하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $xml = new DOMDocument();
    
    $xml->loadXML('<도서관><도서><제목>책 제목제목><저자>저자 이름저자>도서>도서관>');
    
    
    
    $xpath = new DOMXPath($xml);
    
    
    
    $제목 = $xpath->evaluate('//도서/제목/text()')->item(0)->nodeValue;
    
    
    
    echo $제목; // 책 제목
    
    


    이 예제에서는 DOMXPath::evaluate 메서드를 사용하여 도서의 제목을 추출하는 방법을 보여 줍니다. evaluate 메서드는 XPath 표현식 `//도서/제목/text()`를 사용하여 도서의 제목을 추출합니다. 추출된 제목은 `책 제목`입니다.

    2025-07-15 11:19

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

검색

게시물 검색