XML DOM XPathResult 객체
- 이전 페이지 DOM XPathExpression
- 다음 페이지 DOM XSLTProcessor
XPath 쿼리의 결과
XPathResult 객체
XPathResult 객체는 XPath 표현식의 값을 나타냅니다. 이 유형의 객체는 Document.evaluate() 와 XPathExpression.evaluate() 返回。XPath 쿼리는 문자열, 숫자, 부울 값, 노드 및 노드 목록으로 계산될 수 있습니다. XPath 구현은 노드 목록을 반환하는 방법이 여러 가지 있기 때문에, 이 객체는 XPath 쿼리의 실제 결과를 얻기 위해 약간 복잡한 API를 정의합니다.
XPathResult를 사용하려면 먼저 resultType 속성을 확인합니다. 이 속성은 XPathResult 상수를 저장합니다. 이 속성의 값은 결과 값을 결정하는 데 사용할 속성과 메서드를 알려줍니다. 현재 resultType에 정의된 메서드를 호출하지 않거나 정의된 속성을 읽지 않으면 예외가 발생합니다.
IE는 XPathResult API를 지원하지 않습니다. IE에서 XPath 쿼리를 실행하려면 다음을 참조하십시오: Node.selectNodes() 와 Node.selectSingleNode() .
XPathResult 객체의 상수
이 상수는 XPath 쿼리가 반환할 수 있는 유형을 정의합니다. XPathResult 객체의 resultType 속성은 이 값 중 하나를 저장하며, 객체가 어떤 결과를 저장할지 지정합니다. 이 상수는 Document.evaluate()와 XPathExpression.evaluate()와 함께 사용되어, 기대하는 결과 유형을 지정합니다.
이상의 상수와 그 의미는 다음과 같습니다:
- ANY_TYPE
- 이 값을 Document.evaluate() 또는 XPathExpression.evaluate()에 전달하여 수용할 수 있는 결과 유형을 지정합니다. 속성 resultType는 이 값을 설정하지 않습니다.
- NUMBER_TYPE
- numbervalue가 결과를 저장합니다.
- STRING_TYPE
- stringvalue가 결과를 저장합니다.
- BOOLEAN_TYPE
- booleanValue가 결과를 저장합니다.
- UNORDERED_NODE_ITERATOR_TYPE
- 이 결과는 노드의 비정렬 집합이며, iterateNext()를 반복 호출하여 null이 반환되까지 순차적으로 액세스할 수 있습니다. 이 이터레이션 과정에서 문서는 변경되지 않아야 합니다.
- ORDERED_NODE_ITERATOR_TYPE
- 결과는 문서 속성에 따라 정렬된 노드 목록입니다. iterateNext()를 반복 호출하여 null이 반환되까지 순차적으로 액세스할 수 있습니다. 이 이터레이션 과정에서 문서는 변경되지 않아야 합니다.
- UNORDERED_NODE_SNAPSHOT_TYPE
- 결과는 랜덤 액세스 노드 목록입니다. snapshotLength 속성은 목록의 길이를 지정하며, snapshotItem() 메서드는 지정된 인덱스의 노드를 반환합니다. 노드는 문서에서 나타나는 순서와 다를 수 있습니다. 이 결과가 '스냅샷'이므로, 문서가 변경되더라도 유효합니다.
- ORDERED_NODE_SNAPSHOT_TYPE
- 이 결과는 UNORDERED_NODE_SNAPSHOT_TYPE와 같은 랜덤 접근 가능한 노드 목록입니다. 하지만 이 목록은 문서의 순서에 따라 정렬됩니다.
- ANY_UNORDERED_NODE_TYPE
- singleNodeValue 속성은 검색과 일치하는 노드를 참조합니다. 일치하는 노드가 없다면 null입니다. 여러 노드가 검색과 일치하면 singleNodeValue는 어떤 일치하는 노드든지 될 수 있습니다.
- FIRST_ORDERED_NODE_TYPE
- singleNodeValue는 문서에서 첫 번째로 검색된와 일치하는 노드를 저장합니다. 일치하는 노드가 없다면 null입니다.
XPathResult 객체의 인스턴스 속성
여기서 많은 속성은 resultType가 특정 값을 저장했을 때만 유효합니다. 현재 resultType에 정의되지 않은 속성에 접근하면 예외가 발생합니다.
- booleanValue
- 당 resultType 가 BOOLEAN_TYPE 일 때, 결과 값을 저장합니다.
- invalidIteratorState
- resultType가 ITERATOR_TYPE 상수 중 하나이고 문서가 변경되었을 때 true입니다; 결과가 반환되었기 때문에 이터레이터가 무효가 됩니다.
- numberValue
- 당 resultType 가 NUMBER_TYPE 일 때, 결과 값을 저장합니다.
- resultType
- XPath를 통해 어떤 결과를 반환할지 확인합니다. 이 값은 나열된 등의 상수 중 하나입니다. 이 속성의 값은 다른 속성과 메서드를 사용할 수 있는지를 알려줍니다.
- singleNodeValue
- 당 resultType 가 XPathResult.ANY_UNORDERED_NODE_TYPE 또는 XPathResult.FIRST_UNORDERED_NODE_TYPE 일 때, 결과 값을 저장합니다.
- snapshotLength
- 당 resultType 가 UNORDERED_NODE_SNAPSHOT_TYPE 또는 ORDERED_NODE_ITERATOR_TYPE 일 때, 반환할 노드 수를 지정합니다. snapshotItem()와 함께 이 속성을 사용합니다.
- stringValue
- 当 resultType 为 STRING_TYPE 时,保存结果值。
XPathResult 객체의 메서드
方法 | 描述 |
---|---|
iterateNext() | 如果 resultType 是 UNORDERED_NODE_ITERATOR_TYPE 或 ORDERED_NODE_ITERATOR_TYPE,使用这个一方法。 |
snapshotItem() | 返回结果节点列表中指定下标的节点。这个方法只有在 resultType 是 UNORDERED_NODE_SNAPSHOT_TYPE 或 ORDERED_NODE_SNAPSHOT_TYPE 的时候才能使用。snapshotLength 属性和这个方法一起使用。 |
- 이전 페이지 DOM XPathExpression
- 다음 페이지 DOM XSLTProcessor