Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Spécification de l’analyseur XML d’une session Junos PyEZ

RÉSUMÉ Découvrez comment Junos PyEZ utilise différents analyseurs XML pour certaines opérations afin d’optimiser l’utilisation de la mémoire et la vitesse de traitement.

XML (Extensible Markup Language) est une norme de représentation et de communication d’informations. Il s’agit d’un métalangage permettant de définir des balises personnalisées qui sont appliquées à un ensemble de données ou à un document pour décrire la fonction d’éléments individuels et codifier les relations hiérarchiques entre eux. Junos OS prend nativement en charge XML pour le fonctionnement et la configuration des équipements Junos.

Les applications clientes utilisent des analyseurs XML pour lire et utiliser des documents XML, par exemple, la sortie de commande ou les données de configuration renvoyées au format XML dans la réponse RPC d’un périphérique Junos. Les analyseurs XML peuvent utiliser différentes approches pour analyser un document XML. Les analyseurs DOM (Document Object Model) créent une représentation arborescente de l’ensemble du document XML, qui est chargé dans son intégralité en mémoire. En revanche, un analyseur Simple API for XML (SAX) effectue une analyse basée sur les événements et analyse chaque partie du document XML de manière séquentielle. Par conséquent, les analyseurs SAX ne chargent qu’une petite partie des données XML en mémoire à la fois.

Les analyseurs SAX n’ont pas besoin de beaucoup de mémoire pour effectuer des opérations, mais les besoins en mémoire de l’analyseur DOM augmentent avec la taille du document. En général, l’analyse DOM est plus rapide que l’analyse SAX, car l’application peut accéder à l’intégralité du document XML en mémoire. Cependant, à mesure que la taille du document XML augmente, les analyseurs DOM nécessitent plus de mémoire et l’analyse SAX devient plus efficace.

Junos PyEZ utilise la bibliothèque Python, qui utilise par défaut l’analyse DOM pour le ncclient traitement XML. Dans ce cas, l’analyseur convertit l’ensemble du document XML en objet lxml et le charge en mémoire. Les équipements Junos peuvent renvoyer des documents XML volumineux pour la sortie des commandes show et les données de configuration. Si vous n’avez besoin de récupérer qu’un petit sous-ensemble de valeurs à partir du XML dans ces cas, l’analyse DOM peut être inefficace.

À partir de la version 2.3.0 de Junos PyEZ, Junos PyEZ utilise l’analyse SAX lorsque cela est possible dans les cas suivants :

  • Lorsque vous utilisez des tables et des vues opérationnelles pour récupérer une sortie structurée

  • Lorsque vous incluez l’argument use_filter=True dans l’instance Device() pour une session donnée et que vous effectuez des opérations qui demandent un sous-ensemble de valeurs de balise à partir d’une sortie XML,

Par exemple, le script suivant exécute le get_interface_information RPC et filtre la sortie XML pour ne renvoyer que l’élément <name> de chaque interface physique. Dans ce cas, l’analyse SAX est utilisée, car seul un sous-ensemble du XML est demandé.