Objeto XPathResult do XML DOM

O resultado da consulta XPath.

O objeto XPathResult

O objeto XPathResult representa o valor de uma expressão XPath. Este tipo de objeto é Document.evaluate() E XPathExpression.evaluate() Retornar. A consulta XPath pode ser calculada como uma string, um número, um valor booleano, um nó e uma lista de nós. A implementação XPath pode retornar uma lista de nós de várias maneiras diferentes, portanto, este objeto define uma API um pouco mais complexa para obter o resultado real de uma consulta XPath.

Para usar um XPathResult, primeiro verifique o atributo resultType. Ele armazenará um constante XPathResult. O valor deste atributo indica qual atributo e método usar para determinar o valor do resultado. Chamar métodos ou ler atributos não definidos para o resultType atual causará exceções.

O IE não suporta a API XPathResult. Para executar consultas XPath no IE, consulte Node.selectNodes() E Node.selectSingleNode() .

Constantes do objeto XPathResult

Aqui está a definição de um tipo de resultado que uma consulta XPath pode retornar. O atributo resultType do objeto XPathResult armazena um desses valores, para especificar qual tipo de objeto armazenar o resultado. Essas constantes são usadas com Document.evaluate() e XPathExpression.evaluate() para especificar o tipo de resultado esperado.

Estes constantes e seus significados são os seguintes:

ANY_TYPE
Passa este valor para Document.evaluate() ou XPathExpression.evaluate() para especificar o tipo de resultado aceitável. O atributo resultType não define este valor.
NUMBER_TYPE
numbervalue armazena o resultado.
STRING_TYPE
stringvalue armazena o resultado.
BOOLEAN_TYPE
booleanValue armazena o resultado.
UNORDERED_NODE_ITERATOR_TYPE
Este resultado é um conjunto de nós não ordenados, que pode ser acessado iterativamente chamando iterateNext() até que retorne null. Durante essa iteração, o documento não deve ser modificado.
ORDERED_NODE_ITERATOR_TYPE
O resultado é uma lista de nós, organizada conforme as propriedades do documento, e pode ser acessada iterativamente chamando iterateNext() até que retorne null. Durante essa iteração, o documento não deve ser modificado.
UNORDERED_NODE_SNAPSHOT_TYPE
O resultado é uma lista de nós de acesso aleatório. O atributo snapshotLength especifica o comprimento da lista, e o método snapshotItem() retorna o nó especificado pelo índice. Os nós podem não aparecer na mesma ordem em que aparecem no documento. Como este resultado é um “snapshot”, ele continua válido mesmo que o documento mude.
ORDERED_NODE_SNAPSHOT_TYPE
Este resultado é uma lista de nós acessíveis aleatoriamente, como UNORDERED_NODE_SNAPSHOT_TYPE, mas a lista está ordenada de acordo com a ordem do documento.
ANY_UNORDERED_NODE_TYPE
A propriedade singleNodeValue faz referência ao nó que coincide com a consulta, ou null se nenhum nó coincidir. Se houver múltiplos nós coincidentes com a consulta, singleNodeValue pode ser qualquer um dos nós coincidentes.
FIRST_ORDERED_NODE_TYPE
singleNodeValue salva o primeiro nó que coincide com a consulta no documento, ou null se nenhum nó coincidir.

Propriedades de instância do objeto XPathResult

Muitas dessas propriedades só são válidas quando o resultType salva um valor específico. Acesso a propriedades não definidas para o current resultType causará exceção.

booleanValue
Quando o resultType for BOOLEAN_TYPE, salva o valor do resultado.
invalidIteratorState
Se o resultType for uma constante do tipo ITERATOR_TYPE e o documento já foi modificado, então é true; isso torna o iterador inválido, porque o resultado já foi retornado.
numberValue
Quando o resultType for NUMBER_TYPE, salva o valor do resultado.
resultType
Usa XPath para consultar qual tipo de resultado será retornado. Seu valor é um dos constantes listadas anteriormente. O valor deste atributo indica quais outras propriedades e métodos você pode usar.
singleNodeValue
Quando o resultType for XPathResult.ANY_UNORDERED_NODE_TYPE ou XPathResult.FIRST_UNORDERED_NODE_TYPE, salva o valor do resultado.
snapshotLength
Quando o resultType for UNORDERED_NODE_SNAPSHOT_TYPE ou ORDERED_NODE_ITERATOR_TYPE, especifica o número de nós a serem retornados. Este atributo deve ser usado conjuntamente com snapshotItem().
stringValue
Quando o resultType for STRING_TYPE, o valor do resultado é salvo.

Métodos do objeto XPathResult

Método Descrição
iterateNext() Se o resultType for UNORDERED_NODE_ITERATOR_TYPE ou ORDERED_NODE_ITERATOR_TYPE, use este método.
snapshotItem() Retorna o nó especificado no índice da lista de resultados. Este método pode ser usado apenas quando o resultType é UNORDERED_NODE_SNAPSHOT_TYPE ou ORDERED_NODE_SNAPSHOT_TYPE. O atributo snapshotLength é usado junto com este método.

Páginas relacionadas

Document.evaluate() E XPathExpression.evaluate()