
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