Объект XPathResult DOM XML

Результат XPath запроса.

Объект XPathResult

Объект XPathResult представляет значение XPath выражения. Объекты этого типа Document.evaluate() И XPathExpression.evaluate() Возврат. XPath запрос может быть вычислен как строка, число, булево значение, узел и список узлов. Реализация XPath может возвращать список узлов несколькими способами, поэтому этот объект определяет несколько сложный API для получения фактического результата XPath запроса.

Чтобы использовать XPathResult, сначала проверьте атрибут resultType. Он сохраняет константу XPathResult. Значение этого атрибута говорит вам, какие атрибуты и методы нужно использовать для определения значения результата. Вызов методов, не определенных для текущего resultType, или чтение свойств, не определенных для него, приведет к исключению.

IE не поддерживает API XPathResult. Чтобы выполнить запрос XPath в IE, см. Node.selectNodes() И Node.selectSingleNode() .

Константы объекта XPathResult

Эти константы определяют типы, которые может вернуть запрос XPath. Атрибут resultType объекта XPathResult сохраняет одну из этих значений и используется для указания того,何种 результат сохраняется объектом. Эти константы используются вместе с 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. В процессе итерации документ не должен быть изменен.
Результатом является список узлов с случайным доступом. Атрибут 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 используется вместе с этим методом.

Соответствующие страницы

Document.evaluate() И XPathExpression.evaluate()