| 個人檔案Gustavo Bonansea部落格清單 | 說明 |
|
1 July Tutorial de XPath 2.0 - Parte 2
TUTORIAL DE XPATH 2.0 - Parte 2Una expresión de ruta (path expression) sirve para localizar nodos dentro de la estructura jerárquica propia de Xml. Cada expresión de ruta consta de varios pasos, cada cual se separa por un símbolo “/” o “//”. El primero indica que el siguiente paso se encuentra adyacente en la jerarquía de nodos, es decir que referencia a un hijo, y el segundo puede localizar cualquier nodo que sea descendiente sin importar el nivel (es una abreviatura de: descendant-or-self::node()). Las rutas pueden ser absolutas o relativas. Si comienzan con el símbolo “/” son absolutas y hacen referencia al nodo raíz. En caso contrario hacen referencia al nodo actual.
Sintaxis
7.1 PasosCada paso en una ruta puede tener un eje, un filtro y cero o más predicados y se evalúa con respecto al conjunto de nodos producidos por el paso anterior.
Sintaxis
Imagen 1: Expresión que devuelve los títulos de los libros que se encuentran después de “El Zorro” 7.2 EjesEl eje de un paso especifica la dirección que la que se va a evaluar, es decir si nos vamos a mover hacia arriba en la jerarquía o hacia abajo, si se va a incluir el nodo actual o no, etc. En la tabla 2 se muestran todos los ejes posibles.
Tabla 2. 7.3 Filtros (Node test)Los filtros son utilizados para incluir o excluir nodos dentro de un eje, ya sea por nombre o por tipo. El resultado son todos los nodos que cumplen con el filtro especificado. En el caso de filtros por nombre se utiliza un QName. En la tabla 3 se muestran algunos tipos de filtros.
Sintaxis
Tabla 3.
preceding::Libro Ejemplo 12: Expresión que devuelve todos los nodos que son hijos del raíz, no son hijos del nodo actual, preceden en orden al nodo actual y se llaman “Libro”
7.4 PredicadosLos predicados son expresiones que permiten filtrar un conjunto de nodos utilizando un criterio determinado. Filtran los nodos que se obtienen como resultado de la expresión de ruta (path expression) que se ejecutó hasta el momento, dejando solo aquellos para los cuales se cumple el criterio. Los predicados se escriben entre corchetes. Si el predicado consta de una expresión que se evalúa como entero entonces como resultado se obtiene el nodo que se encuentra en esa posición (es análogo a los índices de un Array, con la diferencia de que los índices comienzan en 1).
Libros/Libro[1]/Titulo Ejemplo 13: Obtiene el título del primer libro Libros/Libro[count(../*)]/Titulo Ejemplo 14: Obtiene el título del último elemento. Nótese que “count(../*)” no es un literal como la expresión del ejemplo 13, sino una expresión que tiene por resultado un entero, en este caso la cantidad de Libros Libros/Libro/following::Libro[3]/Titulo Ejemplo 15: Obtiene los títulos de los libros que se encuentran después del tercero
En cualquier otro caso (es decir cuando el resultado de la expresión del predicado no es un entero) el resultado de aplicar el predicado es el conjunto de nodos para los cuales la expresión resulta verdadera.
Libros/Libro[Autores/Autor/Nombre='Isabel']/Titulo Ejemplo 16: Título de los libros escritos por un autor de nombre “Isabel”
Libros/Libro[count(Autores/Autor)=1][Publicacion>2004] Ejemplo 17: Expresión que obtiene los libros que fueron escritos por un solo autor y fueron publicados después del 2004
7.5 Notación abreviadaExisten formas abreviadas para escribir algunas expresiones de forma más reducida. Por ejemplo, en vez de utilizar el eje attribute se puede utilizar el símbolo @ como en el ejemplo 18. En la tabla 4 podemos observar una lista de todas la abreviaturas.
Libros/Libro/attribute::ISBN Libros/Libro/@ISBN Ejemplo 18: Cualquiera de las anteriores expresiones tienen por resultado un listado de todos los ISBN de los libros.
Tabla 4. 引用通告此內容的引用通告是: http://misopiniones.spaces.live.com/blog/cns!2737DC89A4AAB26B!200.trak 引述這則內容的部落格
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|