Documentación



Clase isiXML

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:

var miclase = new isiXML(document.body);

var miclase = new isiXML(objAjax.responseXML);



Metodo Query()

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 miclase = new isiXML(document.body);
var datos = miclase.Query("SELECT node.value");




Metodo Tables()

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:

var miclase = new isiXML(document.body);
miclase.Tables("mydiv");
Ver ejemplo




Como usar las consultas SQL

  1. Tablas y Campos
  2. Comandos

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:

<photo iduser="1" width="400" heigth="200" description="Myself">Images/me.gif</photo>

Node


Atrib

Doy por echo que los campos ID, Row, Path y Level no han quedado muy claros. Basicamente estos datos no servirian para mostrarlos pero mas adelante veremos como los podemos usar para hacer una busqueda mas detallada.

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 version="1.0" encoding="iso-8859-1"?>
<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:
<mynode myatrib="text"> value5 </mynode>
Node.ID nos dara 5 y Atrib.ID 4 porque le falta un atributo.



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 version="1.0" encoding="iso-8859-1"?>
<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:
<three atr="atrvalue">Value4</three>

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:

<three atr="atrvalue" atrib2="atribvalue2">Value4</three>

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:

<three atr="atrvalue" atrib2="atribvalue2">Value4</three>

Node.Value = Value4
Atrib.Value(1) = atrvalue
Atrib.Value(2) = atribvalue2



Atrib.Atrib
Devuelve el nombre de un atributo. En el ejemplo anterior:

<three atr="atrvalue" atrib2="atribvalue2">Value4</three>

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:

SELECT node.value



WHERE
Se usa para filtrar datos mediante comparaciones. Y la sintaxis es la siguiente:

SELECT campos WHERE (comparaciones)

 

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:

SELECT node.value LIMIT 0,5


En el caso de que la sentencia tenga un WHERE se pondria despues.
SELECT node.value WHERE (node.node='name') LIMIT 0,2


Ahora supon que solo quieres mostrar a partir del 5º.
SELECT node.value LIMIT 5


O los 5 ultimos.
SELECT node.value LIMIT -5



Contacto

Source Forge

Visitas:

Ultima actualizacion: 13/06/2006