XPath en Flash MX 2004

Investigando diferentes metodos para acceder a la información de un XML con Flash he llegado a un par de interesantes implementaciones de XPath para Flash.

XPath es un potente lenguaje para la selección de nodos en un documento XML. Este permite el crear una query string con el camino o path a los nodos que queremos seleccionar. Para más información al respecto te remito a las siguientes direcciones:

Las dos implementaciones que he encontrado son la oficial de MM (Flash MX 2004 ya viene con un API) y la de Neeld Tanksley. La primera parece más eficiente pero sin duda es muy básica, mientras que la segunda está cerca de soportar al 100% la especificación oficial y es un poco más lenta (pero no mucho).

Para usar la versión “oficial”, primero hay que importar las clases de DataBinding (puedes ir a Panels > Common Libraries > Classes), lo cual no comprendo porque es así, y no se encuentran con el resto de clases como cabría esperar. Una vez con el componente en la librería ya podeis utilizar el paquete mx.xpath.XPathAPI.

En el caso de las clases de xfactor, solo hay que colocar las clases e importar el paquete com.xfactorstudio.xml.xpath

La razón de usar XPath o cualquier otro metodo (como XMLSA o XML2Object
por citar solo algunos…), debe ser unicamente dependiendo del caso particular que tratemos. XPath, permite no tener guardado el XML entero
en una estructura de Objectos e ir a buscar el nodo que necesitemos en el momento necesitado. Esto por supuesto tiene sus ventajas e incovenientes…y como digo requiere un estudio por parte del desarrollador para ver cual es la solución óptima en su caso.

Por el momento he jugado un poco con las implementaciones y he quedado gratamente sorprendido, en los próximos días me toca seguir indagando para ver hasta que punto voy a usar XPath en los proyectos que llevo entre manos.

Otros enlaces interesantes:

Por último, hay un comentario de un usuario en el último enlace, en el que da algunos datos interesantes basados en algunos test realizados. Este realizó el parseo de un fichero de RSS con 15 elementos más los típicos headers, y despues de 10 test con el XPath de MM tardó 12.8 ms en parsear el fichero (rango de tiempos 9 – 19ms) mientras que con el XPath de XFactorStudio y el mismo número de test tardó 33.8 ms en parsear el mismo fichero(rango de tiempos 27 – 60ms). El peso del fichero con la versión de MM era de 29kb y la de XFactor de 22kb aproximadamente.

3 Comentarios

  1. Buena información Carlos, en cuanto tenga un poco de tiempo la mirará.
    Quizá estarí­a bien que postearas algún ejemplo de uso que hayas hecho, aunque sea básico.
    Para hacernos a la idea de su funcionamiento.

    Por lo demás, siempre genial con tus aportaciones.

    saludos

  2. Gracias nuevamente Alberto 🙂

    Ayer cuando puse este artí­culo pensá que efectivamente le faltaba algún ejemplo pero ya que en los links que aporto hay varios ejemplos básicos, creo que voy a esperar a tener algo un poco más interesante y con más miga en este aspecto (espero que en pocos dí­as).

    Tambián aprovechar para reiterar la invitación a cualquiera que lea este humilde blog a que si tiene ya algún ejemplo o algo que crea de interes a postear en estos comentarios.

    🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *