Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Especificar el analizador XML para una sesión de Junos PyEZ

RESUMEN Aprenda cómo Junos PyEZ utiliza diferentes analizadores XML para determinadas operaciones, con el fin de optimizar el uso de la memoria y la velocidad de procesamiento.

El lenguaje de marcado extensible (XML) es un estándar para representar y comunicar información. Es un metalenguaje para definir etiquetas personalizadas que se aplican a un conjunto de datos o documento para describir la función de elementos individuales y codificar las relaciones jerárquicas entre ellos. Junos OS admite XML de forma nativa para la operación y configuración de dispositivos Junos.

Las aplicaciones cliente utilizan analizadores XML para leer y trabajar con documentos XML, por ejemplo, la salida del comando o los datos de configuración devueltos como XML en la respuesta RPC de un dispositivo Junos. Los analizadores XML pueden utilizar diferentes enfoques para analizar un documento XML. Los analizadores del Document Object Model (DOM) crean una representación de árbol de todo el documento XML, que se carga en su totalidad en memoria. Por el contrario, un analizador de API simple para XML (SAX) realiza un análisis basado en eventos y analiza secuencialmente cada parte del documento XML. Como resultado, los analizadores SAX solo cargan una pequeña porción de los datos XML en memoria en cualquier momento.

Los analizadores SAX no requieren mucha memoria para realizar operaciones, pero los requisitos de memoria del analizador DOM aumentan con el tamaño del documento. En general, el análisis DOM es más rápido que el análisis SAX, ya que la aplicación puede tener acceso a todo el documento XML en memoria. Sin embargo, a medida que aumenta el tamaño del documento XML, los analizadores DOM requieren más memoria y el análisis SAX se vuelve más eficiente.

Junos PyEZ utiliza la biblioteca de Python, que utiliza de forma predeterminada el análisis DOM para el ncclient procesamiento XML. En este caso, el analizador convierte todo el documento XML en un lxml objeto y lo carga en memoria. Los dispositivos Junos pueden devolver documentos XML grandes para mostrar la salida del comando y los datos de configuración. Si en estos casos solo necesita recuperar un pequeño subconjunto de valores del XML, el análisis DOM puede ser ineficaz.

A partir de Junos PyEZ versión 2.3.0, Junos PyEZ utiliza el análisis SAX cuando es posible en los siguientes casos:

  • Cuando se utilizan tablas y vistas operativas para recuperar resultados estructurados

  • Cuando se incluye el use_filter=True argumento en la Device() instancia de una sesión determinada y se realizan operaciones que solicitan un subconjunto de valores de etiqueta de la salida XML

Por ejemplo, la siguiente secuencia de comandos ejecuta el get_interface_information RPC y filtra el resultado XML para devolver sólo el <name> elemento de cada interfaz física. En este caso, se utiliza el análisis SAX, ya que sólo se solicita un subconjunto del XML.