Objeto XPathResult del DOM XML

El resultado de la consulta XPath.

El objeto XPathResult

El objeto XPathResult representa el valor de una expresión XPath. Este tipo de objeto se crea Document.evaluate() Y XPathExpression.evaluate() Regresar. La consulta XPath se puede calcular como cadena de caracteres, número, valor booleano, nodo y lista de nodos. La implementación de XPath puede retornar la lista de nodos de varias maneras, por lo que este objeto define una API ligeramente más compleja para obtener el resultado real de una consulta XPath.

Para usar un XPathResult, primero verifique la propiedad resultType. Esta propiedad guardará una constante XPathResult. El valor de esta propiedad le dirá qué propiedades y métodos debe usar para determinar el valor del resultado. Llamar a métodos o leer propiedades no definidos para el resultType actual causará una excepción.

IE no admite el API XPathResult. Para ejecutar consultas XPath en IE, consulte Node.selectNodes() Y Node.selectSingleNode() .

Constantes del objeto XPathResult

La siguiente constante define el tipo que puede devolver una consulta XPath. La propiedad resultType del objeto XPathResult guarda uno de estos valores, para especificar qué tipo de objeto guardar en el objeto. Estas constantes se utilizan junto con Document.evaluate() y XPathExpression.evaluate() para especificar el tipo de resultado esperado.

Estos constantes y su significado son los siguientes:

ANY_TYPE
Pase este valor a Document.evaluate() o XPathExpression.evaluate() para especificar el tipo de resultado aceptable. La propiedad resultType no establece este valor.
NUMBER_TYPE
numbervalue guarda el resultado.
STRING_TYPE
stringvalue guarda el resultado.
BOOLEAN_TYPE
booleanValue guarda el resultado.
UNORDERED_NODE_ITERATOR_TYPE
Este resultado es un conjunto de nodos sin orden, que se puede acceder sucesivamente llamando a iterateNext() hasta que se devuelva null. Durante este proceso de iteración, el documento no debe ser modificado.
ORDERED_NODE_ITERATOR_TYPE
El resultado es una lista de nodos ordenados según las propiedades del documento, que se puede acceder sucesivamente llamando a iterateNext() hasta que se devuelva null. Durante este proceso de iteración, el documento no debe ser modificado.
UNORDERED_NODE_SNAPSHOT_TYPE
El resultado es una lista de nodos de acceso aleatorio. La propiedad snapshotLength especifica la longitud de la lista, y el método snapshotItem() devuelve el nodo en el índice especificado. Los nodos pueden no coincidir con el orden en que aparecen en el documento. Ya que este resultado es un "snapshot", incluso si el documento cambia, sigue siendo válido.
ORDERED_NODE_SNAPSHOT_TYPE
Este resultado es una lista de nodos de acceso aleatorio, como UNORDERED_NODE_SNAPSHOT_TYPE, pero la lista está ordenada según el orden del documento.
ANY_UNORDERED_NODE_TYPE
La propiedad singleNodeValue hace referencia a un nodo que coincide con la consulta, o null si no hay nodos coincidentes. Si hay múltiples nodos que coinciden con la consulta, singleNodeValue puede ser cualquier nodo coincidente.
FIRST_ORDERED_NODE_TYPE
singleNodeValue guarda el primer nodo en el documento que coincide con la consulta, o null si no hay nodos coincidentes.

Atributos de instancia de XPathResult

Muchas de las propiedades aquí solo son válidas cuando resultType guarda un valor específico. Acceder a propiedades no definidas para el resultType actual causará una excepción.

booleanValue
Cuando resultType sea BOOLEAN_TYPE, guarda el valor del resultado.
invalidIteratorState
Si resultType es una constante de ITERATOR_TYPE y el documento ha sido modificado,则为 true; esto hace que el iterador sea inválido porque ya se ha devuelto el resultado.
numberValue
Cuando resultType sea NUMBER_TYPE, guarda el valor del resultado.
resultType
Usa XPath para consultar qué tipo de resultado devuelve. Su valor es uno de los constantes enumerados anteriormente. El valor de esta propiedad indica qué otras propiedades y métodos puedes usar.
singleNodeValue
Cuando resultType sea XPathResult.ANY_UNORDERED_NODE_TYPE o XPathResult.FIRST_UNORDERED_NODE_TYPE, guarda el valor del resultado.
snapshotLength
Cuando resultType sea UNORDERED_NODE_SNAPSHOT_TYPE o ORDERED_NODE_ITERATOR_TYPE, especifica el número de nodos devueltos. Se utiliza esta propiedad junto con snapshotItem().
stringValue
Cuando resultType sea STRING_TYPE, guarda el valor del resultado.

Métodos del objeto XPathResult

Método Descripción
iterateNext() Si resultType es UNORDERED_NODE_ITERATOR_TYPE o ORDERED_NODE_ITERATOR_TYPE, usa este método.
snapshotItem() Devuelve el nodo especificado en la lista de resultados. Este método solo se puede usar cuando resultType es UNORDERED_NODE_SNAPSHOT_TYPE o ORDERED_NODE_SNAPSHOT_TYPE. La propiedad snapshotLength se usa junto con este método.

Páginas relacionadas

Document.evaluate() Y XPathExpression.evaluate()