Definicion: Crea una clase para trabajar con el objeto DOM pasado como parametro.
Parametro: Se le pasa un objeto DOM. Por ejemplo puede ser document.body o un responseXML del objeto XMLHttpRequest() asi como cualquier objeto XML
Metodos:
Modo de uso:
Definicion: Ejecuta una consulta al XML con los datos a devolver deseados.
Devuelve: Devuelve un array con todos los datos.
Parametro: Se le pasa una cadena de texto con la consulta. La consulta es muy similar a las sentencias de SQL. Más Info para usar las consultas
Modo de uso:
var datos = miclase.Query("SELECT node.value");
Definicion: Devuelve la informacion de todo el documento XML.
Parametro: Se le pasa un string especificando el id del elemento html, que es donde se va a cargar todas las tablas. El id puede ser de una capa de una tabla...
Modo de uso:
miclase.Tables("mydiv");
Si estas familiarizado con las bases de datos y con el lenguaje SQL esto te resultara muy facil. Si no aqui vamos a explicar un poco su funcionamiento.
Con isiXML un documento XML es el equivalente a una base de datos. Una base de datos puede tener varias tablas, pero en nuestro caso nosotros solo tenemos dos tablas por asi llamarlas. Una base de datos puede tener varios campos como: Nombre, Apellidos, Nacionalidad...
[1] Tablas y Campos
Vale, este es nuestro XML este va a ser el documento con el que vamos a trabajar siempre.
A continuacion citare las tablas con los atributos posibles a usar y sus resultados correspondientes. Abre el documento XML y busca esta linea:
Node
- Node.ID = 6
- Node.Row = 9
-
Node.Path = 1,3
- Node.Path(1) = 1
- Node.Path(2) = 3
- Node.Level = 2
- Node.Node = photo
- Node.Value = Images/me.gif
Atrib
- Atrib.ID = 7
- Atrib.Row = 9
-
Atrib.Path = 1,3
- Atrib.Path(1) = 1
- Atrib.Path(2) = 3
- Atrib.Level = 2
- Atrib.Node = photo
-
Atrib.Value
- Atrib.Value(1) = 1
- Atrib.Value(2) = 400
- Atrib.Value(3) = 200
- Atrib.Value(4) = Myself
-
Atrib.Atrib
- Atrib.Atrib(1) = iduser
- Atrib.Atrib(2) = width
- Atrib.Atrib(3) = heigth
- Atrib.Atrib(4) = description
Node.ID o Atrib.ID
Cada vez que encuentre un valor de atributo o de nodo se le incrementara un numero. Es una manera de tener un identificador para cada valor.
Supongamos que tenemos este documento XML:
<XML>
<mynode myatrib="text"> value1 </mynode>
<mynode myatrib="text"> value2 </mynode>
<mynode> value3 </mynode>
<mynode myatrib="text"> value4 </mynode>
<mynode myatrib="text"> value5 </mynode>
</XML>
Si nos fijamos en esta linea, osea la ultima:
Node.Row o Atrib.Row
Este campo identifica cada linea independientemente de si encuentra o no valores. Simplemente se basa en las etiquetas. Que a diferencia del campo ID este se incrementa siempre que encuentre una etiqueta/nodo.
Con el XML de antes si nos fijamos en la misma linea del ejemplo anterior Node.Row dara 6 y Atrib.Row 6 tambien.
Y porque 6? y no 5 te preguntaras. Porque tambien ha contado el nodo padre osea <XML>.
Node.Path o Atrib.Path
Da la ruta exata del valor. La ruta se especifica por niveles, es decir que si nos devolviese 1,3,2 es porque tiene 3 niveles. Y cada valor de esos tres especificaria la fila de dicho nivel.
Con este documento XML:
<XML>
<one>Value1</one>
<one>
<two>Value2</two>
<two>Value3</two>
<two>
<three atr="atrvalue">Value4</three>
<three>Value5</three>
</two>
<two>Value5</two>
</one>
<one>Value6</one>
</XML>
Fijate en esta linea:
Asi que nos devolveria:
Node.Path = 2,3,1
Node.Path(1) = 2
Node.Path(2) = 3
Node.Path(3) = 1
Lo mismo para Atrib.Path
Node.Level o Atrib.Level
Este campo identifica el nivel en el que esta el valor. En el ejemplo anterior (Node.Path y Atrib.Path) la misma linea nos devolveria 3 tanto para Atrib.Level como para Node.Level
Node.Node o Atrib.Node
Este campo devuelve el nombre del nodo donde esta el valor. En esta linea:
Node.Node y Atrib.Node nos devolveria three
Node.Value o Atrib.Value
Devuelve el valor de un atributo o de un nodo. Con esta linea:
Node.Value = Value4
Atrib.Value(1) = atrvalue
Atrib.Value(2) = atribvalue2
Atrib.Atrib
Devuelve el nombre de un atributo. En el ejemplo anterior:
Atrib.Atrib(1) = atr
Atrib.Atrib(2) = atrib2
Nota: Pero no te preocupes porque no tienes porque averiguar tu mismo los campos del documento XML. Para eso ya esta el metodo Tables()
[2] comandos
Para poder usar los campos y las tablas necesitamos comandos.
SELECT
Muestra los campos deseados. Para mostrar mas de un campo se pone una coma para separar unos de otro. Y la sintaxis es la siguiente:
WHERE
Se usa para filtrar datos mediante comparaciones. Y la sintaxis es la siguiente:
Operadores de Comparación
| TIPO | DEFINICIÓN | EJEMPLO | |
| = | Igual que | SELECT node.value WHERE (node.node='name' AND atrib.value(1)=2) | |
| < | Menor que | SELECT node.value WHERE (node.node='name' AND atrib.value(1)<2) | |
| > | Mayor que | SELECT node.value WHERE (node.node='name' AND atrib.value(1)>2) | |
| <> | Distinto de | SELECT node.value WHERE (node.node='name' AND atrib.value(1)<>2) | |
| <= | Menor o igual que | SELECT node.value WHERE (node.node='name' AND atrib.value(1)<=2) | |
| >= | Mayor o igual que | SELECT node.value WHERE (node.node='name' AND atrib.value(1)>=2) | |
Operadores Lógicos
| TIPO | DEFINICION | EJEMPLO | |
| AND | Es el "y" lógico. Evalua dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. | SELECT node.value WHERE (node.node='name' AND atrib.value(1)=1) | |
| OR | Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdar si alguna de las dos es cierta. | SELECT node.value, node.node WHERE (node.node='name' OR node.node='from') | |
LIMIT
Limita la salida de los valores. Por ejemplo, sabemos que al hacer la consulta van a salir mas de 50 resultados.
Pues alomejor solo queremos que salgan los 5 primeros. La sintaxis es la siguiente:
En el caso de que la sentencia tenga un WHERE se pondria despues.
Ahora supon que solo quieres mostrar a partir del 5º.
O los 5 ultimos.
Visitas: 3220
Ultima actualizacion: 13/06/2006