노드 형식 테스트
요소 노드 외에 다른 노드 형식을 선택하려면 노드 형식 테스트를 사용합니다. 노드 형식 테스트를 사용하면 지정된 축의 주 노드 형식이 무시됩니다. 예를 들어, 하위 축의 주 노드 형식이 요소인 경우에도 descendant::text()는 컨텍스트 노드의 하위 노드인 모든 텍스트 노드를 찾습니다.
다음 표에서 볼 수 있듯이 네 가지 노드 형식 테스트를 사용할 수 있습니다.
노드 형식 |
반환 값 |
예제 |
---|---|---|
comment() |
주석 노드에 대해 True |
following::comment()는 컨텍스트 노드 다음에 나타나는 모든 주석 노드를 선택합니다. |
node() |
모든 형식의 노드에 대해 True |
preceding::node()는 컨텍스트 노드 앞에 나타나는 모든 노드를 선택합니다. |
processing-instruction() |
처리 명령 노드에 대해 True |
self::processing instruction()는 컨텍스트 노드 내에 있는 모든 처리 명령 노드를 선택합니다. |
text() |
텍스트 노드에 대해 True |
child::text()는 컨텍스트 노드의 자식인 텍스트 노드를 선택합니다. |
참고
processing-instruction() 테스트에는 리터럴인 인수가 있을 수 있습니다. 이 경우 이름이 리터럴 값과 같은 모든 처리 명령에 대해 True입니다.자세한 내용은 대상 처리 명령 테스트를 참조하십시오.
노드 형식 테스트의 끝에 괄호 ()를 넣어야 합니다. 그러면 소스 문서에 이름이 comment, text, processing-instruction 또는 node인 노드가 있을 경우 발생할 수 있는 문제를 방지할 수 있습니다. XPath 응용 프로그램에서 이중 괄호를 발견할 경우 이 이름의 노드에 대한 이름 테스트가 아니라 노드 형식 테스트로 인식합니다. 마찬가지로 괄호가 비어 있든 비어 있지 않든 간에 노드 형식 테스트는 괄호를 포함하는 참조인 XPath 함수가 아닙니다.