Mejora tu código con estos tips de XPath

Mejorar nuestros procesos es necesario en cualquier empresa, especialmente en aquellas en las que tenemos contacto directo con la tecnología de la información y el desarrollo de software. En Vauxoo queremos compartir un lenguaje que te será muy útil.

Asegurar que las modificaciones que hacemos a los códigos permanezcan funcionales es necesario para que nuestros sitios sigan operando de la mejora manera, por eso queremos platicarte un poco sobre XPath y cómo puedes utilizarlo en tu instancia de Odoo

Un poco sobre XPath

¿Qué es?

XPath es un lenguaje de expresión diseñado para soportar la consulta o transformación de documentos en XML. Es un lenguaje de descripción de rutas para documentos XML desarrollado por la W3C que permite encontrar elementos específicos en un documento XML, sin estar basado en ese tipo de documentos.

XPath:

XML Path Lenguaje.

XML:

Extensible Markup Lenguaje.

W3C:

World Wide Web Consortium.

¿Conoces cómo funciona?

Este lenguaje de rutas se basa en un modelo que interpreta tu documento XML como una secuencia de elementos ordenados en una estructura de árbol, similar a la del DOM (Document Object Model) que funciona como interfaz entre HTML y JavaScript en el navegador web.

¿Cómo localizar los elementos XML

XPath se basa en un sistema de registro Unix, en forma de expresiones de ruta. Los elementos básicos de estas rutas de localización son los nodos, coordenadas relativas, pruebas de nodos y predicados.

Tipos de nodos: 

  • Nodo de elemento.

  • Nodo de documento.

  • Nodo atributo.

  • Nodo de texto. 

  • Nodo de espacio de nombres.

  • Nodo de instrucción de procesamiento. 

  • Nodo de comentario. 

Coordenadas relativas: 

  • child

  • parent

  • descendant

  • ancestor*

  • following

  • preceding*

  • following-sibling

  • preceding-sibling

  • attribute

  • namespace

  • self

  • descendant-or-self

  • ancestor -or-self*


Las Pruebas de nodo, que pueden ser de nombre o tipo de nodo.

¿Para qué usarlo? 

Si tenemos una lista de compras del mes anterior y queremos basarnos en ella para los de este mes, mediante XPath podemos ir modificando algunos elementos como las cantidades, o incluir nuevas cantidades o añadir o eliminar productos de dicha lista.

Se usa en las vistas y plantillas del website o alguna otra plantilla siempre que estén heredando de una vista principal, normalmente aquellas vistas que ya han sido creadas por Odoo o por algún tercero. Odoo nos provee de varios tipos de vistas a nuestros modelos como las de modelos de compras, inventario, ventas, vista formulario, árbol, vista canvas, y más.

Por ejemplo, si tenemos una lista de compras y queremos añadir información, algún nuevo campo, alguna nueva imagen, pero sin modificar la vista original, lo que hacemos es heredar la vista y a través del XPath incluir una expresión que nos permite encontrar un elemento cercano a él, o el mismo, donde queramos implementar dicho cambio.
De esta forma podemos modificar nuestro código desde la vista original sin correr el riesgo de perder la funcionalidad creada por Odoo cuando se pase por una actualización o migración.

Consulta aquí el webinar #Técnico | Mejora tu código con estos tips de XPath

 
 

¿Cómo potenciar el uso de XPath

Dos herramientas muy útiles para probar nuestras expresiones y validar que lo que estamos implementando va a funcionar, son XPather y el propio navegador.

xpather.com es una herramienta que nos permite probar nuestro XPath. Aquí podemos copiar el código y si presionamos la tecla CTRL y nos desplazamos con el mouse, vemos cómo se van seleccionando algunas partes de nuestro XML y en la parte superior se va actualizando el XPath, que aunque es generado por máquina tiene algunos defectos, pero podemos utilizarlo para guiarnos como ejemplo.

Puedes utilizar tu buscador de confianza para buscar XPath en línea y te presentará algunas herramientas de este tipo.

La segunda herramienta es tu propio navegador. Habrá ocasiones en que ya tenemos la página web de nuestra instancia de Odoo desplegada y queremos añadir nueva información. Al desplegar las herramientas del desarrollador encontrarás todo el código que compone la página web y suponiendo que quieres añadir antes de algún elemento, alguna imagen o información extra, vas a la parte de inspeccionar y al darle clic derecho en la parte de copiar, seleccionas copiar XPath, y tendrás la el XPath de ese nodo generado por la máquina.

Para comprobar el XPath, presiona CTRL+f y te va a desplegar un campo de búsqueda que te permitirá buscar la parte del XPath que estás trabajando.


XPath en Odoo.

Al ser un software de código abierto, una de las características de Odoo es la capacidad para personalizar y extender su funcionalidad mediante la creación de módulos personalizados, un proceso en el que XPath es esencial.


En Vauxoo utilizamos XPath para seleccionar elementos específicos en una vista o plantilla. Por ejemplo, cuando queremos modificar el formato de una tabla en una vista de compras, utilizamos XPath para seleccionar específicamente la tabla en cuestión y aplicar los cambios deseados. También utilizamos XPath para crear reglas de validación en un formulario, lo que nos permite validar campos específicos en función de ciertas condiciones.

Además, en Vauxoo utilizamos XPath para crear relaciones entre diferentes elementos en una vista. Por ejemplo, si queremos mostrar una lista de productos relacionados con un producto específico en una vista de detalle de productos, utilizamos XPath para establecer esa relación.

Otra forma en la que XPath es útil es en la creación de filtros personalizados. Podemos crear filtros para seleccionar registros específicos en una vista de lista. Por ejemplo, si deseamos mover solo los productos que tienen un precio mayor a $500, utilizamos XPath para crear un filtro que seleccione solo los productos con esa característica.

En resumen, utilizamos XPath para personalizar y extender la funcionalidad de las instancias Odoo de nuestros clientes (y la propia). Su capacidad para seleccionar elementos específicos en una vista, crear reglas de validación, establecer relaciones y crear filtros personalizados lo convierten en un lenguaje poderoso para nuestro desarrollo de módulos.

Ahora puedes hacer pruebas y comprobar que lo que modificaste te sigue llevando al elemento que deseas. Si funciona como lo necesitas puedes colocarlo en donde lo quieras integrar en tu código. Una forma muy interactiva de probar el código de Odoo, es desde la consola. Testea el XPath con el siguiente texto:  $x(“xpathgenerado + Enter

Recuerda siempre trabajar sobre una copia cuando vayas a modificar alguna funcionalidad de Odoo y contemplar que con alguna actualización o migración deberás hacerlo de nuevo para que siga operando. 

Tú, como nuestro equipo de expertos, utiliza esta y más lenguajes para asegurar que tus desarrollos tengan un excelente desempeño.

¡Sigue aprendiendo con Vauxoo!  visita nuestro canal 

What I learned from Deploy V
The iron in the blacksmith's house