• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Enrique Chavez

Professional WordPress Development

  • Home
  • Blog
  • Contact Me
  • Hire Me

Xpath Suena bien!

ActionScript · Jun 29, 2004

Xpath es una librerí­a para Flash que conocí­ hace poco.

Esta librerí­a no es más que una clase que extiende a la clase XML de Flash añadiéndole métodos muy interesantes

Lo que se puede hacer con esta librerí­a, son búsquedas mediante “querys” dentro de un objeto XML que previamente a sido cargado dentro de Flash, entre otras cosas. 😛

Estos “querys” son sumamente simples, un ejemplo:

Este ejemplo es un “buscador” el cual acepta un parámetro y por supuesto la cadena a buscar.

[FLASH]http://www.tmeister.dev/archivos/xpath.swf, 350,400[/FLASH]

Agenda.xml

<?xml version="1.0" ?>
<agenda>
<persona id="1">
<nombre>Laura</nombre>
<apellido>Perez</apellido>
<edad>20</edad>
<signo>aries</signo>
</persona>

<persona id="2">
<nombre>Fatima</nombre>
<apellido>Ruiz</apellido>
<edad>24</edad>
<signo>cancer</signo>
</persona>

<persona id="3">
<nombre>Guadalupe</nombre>
<apellido>Garcia</apellido>
<edad>19</edad>
<signo>picis</signo>
</persona>

Esta es la estructura de nuestro XML

La manera trabajar con esta libreria es muy similar a la forma en que trabajamos con el Objeto XML tradicional de Flash

[code]
import com.xfactorstudio.xml.xpath.*;
//——–
mi_xml = new XPathDocument();
mi_xml.ignoreWhite = true;
mi_xml.onLoad = function() {
trace(this.selectNodes(“/agenda/persona”));
};
mi_xml.load(“http://www.tmeister.dev/archivos/agenda.xml”);
[/code]

Es basicamente lo mismo, la unica diferencia es que : antes que nada debemos importar las librerias, y despues crear una “instancia” de la clase XPathDocument(); los metodos load y OnLoad siguen siendo los mismos. Pero como dije antes esta clase cuanta con metodos extra.

Una vez cargado nuestro XML dentro de Flash.
Si queremos, por ejemplo, que Xpath nos muestre únicamente los nodos en que la edad sea 26 usamos el siguiente “query”

[code]
objeto = ObjXML.selectNodes(“/agenda/persona[./edad = ’26’]”);
[/code]

Donde ObjXML es el objeto donde hemos cargado la informacion de agenda.xml en este case mi_xml
Si se dan cuenta el acceso a los nodos es mediante “/” siguiendo la estructura jerárquica del XML lo cual nos facilita la vida.

En realidad es una herramienta interesante, por supuesto que tiene sus pro´s y sus contras, en lo personal me gusta crear un objeto con la información del XML y acceder a ella mediante objeto[index].nodo, pero como todo, es cuestión de gustos y por supuesto dependiendo de los requerimientos del proyecto en donde se va a aplicar :D.

En esta página hay excelentes ejemplos http://www.zvon.org

Aqui los Archivos Fuente del ejemplo , incluye las librerí­as.

Saludos!! 8)

Related

Filed Under: ActionScript Tagged With: ActionScript

Enrique Chavez

Senior Full Stack WordPress developer & WordPress Enthusiast -
Spend my days building cool stuff with WordPress.

Reader Interactions

Comments

  1. Pacuzo says

    Jul 2, 2004 at 3:02 pm

    mmm y como instalo las librerás o en que folder las colo co o como?

    Reply
  2. Tmeister says

    Jul 2, 2004 at 3:06 pm

    La ruta de las clase es com.xfactorstudio.xml.xpath

    entonces las clases deben de estar en com/xfactorstudio/xml/xpath

    Si haz descargado el Zip lo veras mas claramente…

    Saludos!! 8)

    Reply
  3. Buti says

    Jul 3, 2004 at 12:42 am

    Hola Tmeister, buen ejemplo, genial.
    Yo he intentado ir un poco más allá, y en tu funcion dibujar, para seleccionar cada uno de los nodos he usado:

    mi_xml.selectNodes(“/agenda/persona[@id=”+c+”]/nombre”);

    Esto funciona pero no sé como referirme al valor del nodo nombre, y mirando la documentación, no veo ninguna referencia, aunque seguro que es facil. ¿Me puedes echar una mano?

    Reply
  4. Tmeister says

    Jul 3, 2004 at 12:45 pm

    Buenas..

    Segun el ejemplo “c” debe ser un numero entre 1 y 8 que son los id´s de los nodos…

    Bien entonces el Query quedaria asi

    [code]
    mi_xml.selectNodes(“/agenda/persona[@id=5]/nombre”);
    [/code]

    Este metodo regresa un objeto con los valores, entonces para referirnos a dicho valor los hacemos asi

    [code]
    obj = mi_xml.selectNodes(“/agenda/persona[@id=5]/nombre”);
    //Esto regresa <nombre>Alejandra</nombre>
    //y tomanos el valor asi
    trace(obj[0].firstChild);
    //Resultado Alejandra
    [/code]

    Queda Claro?

    Saludos!! 8)

    Reply
  5. Buti says

    Jul 3, 2004 at 5:29 pm

    Muy claro, tená dudas del tipo de objeto que devolvá el método selectNodes.
    Muchas gracias Tmeister!
    😉

    Reply
  6. Hector (cent_gen) says

    Jul 3, 2004 at 6:28 pm

    pues muy interesante, pero veo que el ejempo no funciona bien, al parecer tiene un problema con alguna especie de cache, por que realice una busuqeda y todo va bien, pero al querer realizar otra, sigue mostrando el mismo resultado… :S
    ya estoy descargando e intentare ver que pasa, pero seria bueno que lo comentaras 😉

    Reply
  7. eldervaz says

    Aug 14, 2004 at 8:34 pm

    pues eso pasa por ASI SEA EL MISMO CRITERIO debes de volver a seleccionarlo, en todo caso se soluciona si en vez de usar el boton BUSCAR, la “busqueda” la hacer directamente al pulsar el combo, asi obligaria a seleccionarlo de nuevo, hay variantes, pero esto puede ayudar a solucionar tu problema, por mi parte muy bueno esto tmeister

    Reply
  8. Pablo says

    Aug 18, 2004 at 7:55 am

    Muy bien explicado. A mi, por suerte el ejemplo me sirvio de maravilla y no tuve ningun problema con realizar una nueva busqueda. Pero si tengo otro problema: los datos del xml tienen acentos y aparece la letra ñ y cuando mostrar traer algo asi no me trae nada.
    Alguien sabe porque?

    Reply
  9. julio says

    Aug 18, 2004 at 6:04 pm

    Espectacular, La verdad es que si yo algun dia logro manejar el lenguaje, ya sea de action, xml, etc como lo haces vos, estaria mas que satisfecho.

    Reply
  10. Pablo says

    Aug 20, 2004 at 11:52 am

    Perdon por el error, pero quise decir : Cuando intento traer algun texto que contiene una ñ o una vocal con acento me trae cualquier cosa… si alguien sabe como puedo solucionarlo se lo agradeceria

    Reply
  11. nicolas says

    Feb 8, 2005 at 9:49 am

    hola tmesiter… como estas tanto tiempo?… te queria consultar si el uso de estas clases para XPath es Eficiente… y si la busqueda es eficiente en un archivo xml medianamente grande..
    gracias de antemano

    Reply
  12. Sergio says

    Oct 24, 2005 at 4:16 am

    Como puede XPATH devolver el parent de un nodo. He visto que hay un metodo definido como ancester(), peron no consigo implementarlo.

    Reply
  13. Stonyx says

    Dec 14, 2005 at 6:15 pm

    hola muy bueno esto de xpatch la verdad me vino a solucionar muchas cosas yo tengo un problemita espero me puedan ayudar como hago el buscador dentro del list te dejo los archivos por si quicieran ayudarme y mi correo es

    tonyx_788@hotmail.com

    adjunto los archivos http://mx.geocities.com/tonyx_788/internet.zip
    “””””””si copias y pegas la dir en el explorer si funciona”””””””””

    Reply
  14. David says

    Mar 17, 2006 at 7:59 am

    Hola Tmeister,
    No entiendo el uso de [0] en el :
    trace(obj[0].firstChild);
    Y otra pregunta :
    “obj” es un objeto de quel typo ? xml, var… ?

    Reply
  15. Hugo says

    Apr 2, 2006 at 5:43 pm

    Si la variable nombre contiene “Pepe”

    nombre[0].fistChild será “Pepe” (sin las etiquetas)

    Reply
  16. francisco arenas says

    Dec 20, 2006 at 3:07 pm

    he probado el ejemplo con la última versión descargable de xpath de xfactor y no funciona… alguien puede explicar porqué???

    gracias!

    Reply
  17. ronaldo says

    Mar 1, 2007 at 10:04 am

    hgjhgjggh

    Reply
  18. Gerardo52 says

    Mar 6, 2008 at 9:50 am

    Primero quiero felicitarte esta genial este sitio, mi pregunta es se puede impedir la copia de un cd multimedia hecho totalmente en flash?

    estoy desarrollando uno y quiero saber si por algun medio o programa se puede impedir que lo pirateen

    saludos y gracias

    Reply
  19. Enzo says

    Jun 24, 2008 at 3:11 pm

    Buenas, muy bueno el ejemplo posteado! estoy intentando hacer algo para lo que no encuentro la vuelta y queria ver si me podias hacer si sabes si se puede hacer o no.. necesito buscar texto parcial dentro de un tag de xml, por ejemplo “publicada” en el tag Alguna cosa publicada, sin embargo el ejemplo que posteaste busca el texto completo.. hay alguna forma de hacer lo que necesito? gracias!

    Reply
  20. Alex says

    Jul 10, 2008 at 10:24 am

    Buen apunte el q has puesto en la web, pero tengo unos problemitas, 1- doy buscar en tu ejemplo por edad 26 y bi, aparece la busqueda, pero cuando vuelvo a dar nueva busqueda aparece la busqueda anterior, oprimo el boton “mostrar todo”, doy nuevamente la busqueda y me sigue mostrando lo mismo…. 2- cuando intento crear el proyector sale la pagina en blanco.

    tendra algo q ver si estoy usando flash 8.0?

    Ayudame porfa, te lo agradeceria, gracias

    Reply
  21. JAGGAO says

    Jul 17, 2009 at 3:16 am

    buenos dias esta excelente el buskador solo k anfdo necesitando uno de urgencia podeis ayudarme a desarrollarlo o bien traspasaremlo para salir del kompromismo y despeus verlo detenidamente.

    muchass gracias JAGGAO.

    Reply
  22. JAGGAO says

    Jul 17, 2009 at 3:20 am

    el que necesito es uno que sea un searching, en teoria seria que al introducir la palabra si esta en el xml la muestre kon su kontenido asi komo tambien una imagen al lado para ver la descripcion en texto y en imagen !!!

    nuevamente muchas gracias espero su komentarios un abrazo !
    JAGGAO GUTIERREZ

    Reply

Trackbacks

  1. Lilian Garcia says:
    Oct 2, 2006 at 4:12 am

    joan garcia…

    Interesting post. I came across this blog by accident, but it was a good accident. I have now bookmarked your blog for future use. Best wishes. Lilian Garcia….

    Reply
  2. Recursos XPath para Flash : Joan Garnet says:
    May 31, 2008 at 9:30 pm

    […] XfactorStudio: También existe una implementación (la mejor y más completa) casi exacta de XPath para ActionScript (AS1.0 y AS2.0) desde hace bastante tiempo en xfactorstudios, la cual ya se ha mencionado aquí­ en otas ocasiones. Info y ejemplos con la implementación de xfactorstudios: – Xpath Example – Xpath Suena bien! […]

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Footer

SUBSCRIBE FOR UPDATES

Like what you’ve read? If you're interested in my email, sign up here. No spam I promise!

My WordPress Plugins

  • JWT for WP REST API
  • WP Simple Mail Sender
  • Idea Factory

My SideProjects

  • WordPress Plugin Boilerplate Generator

My Profiles

  • WordPress
  • GitHub
  • Linkedin

Additional Info

  • Blog
  • Hire Me
  • Contact Me

© 2021 Enrique Chavez