2008-09-15 8 views
1

Besoin d'analyser du code XML de base (un élément racine, 3-4 sous-éléments, 1-3 attributs chacun) à partir d'un script ksh (idéalement coller à ksh, car le script existe déjà et il essaie juste de lire une configuration supplémentaire créée dans XML par un autre programme). Je sais que je peux utiliser sed et faire des correspondances, mais ce n'est pas infaillible étant donné que le XML d'entrée pourrait changer et que les attributs pourraient être dupliqués sur les différents sous-éléments (ou nouveaux sous-éléments). Jusqu'à présent, je pense à utiliser un XSLT contre le XML pour extraire les quelques attributs (pour des éléments spécifiques) que le script ksh considère comme des champs individuels. Je peux utiliser Oracle pour cela étant donné que nous sommes un produit basé sur DB, et qu'Oracle serait toujours installé sur nos systèmes, mais cela semble un peu lourd.Quelle est l'approche multiplate-forme la moins coûteuse pour analyser XML en utilisant ksh?

Toute autre approche sécurisée permettant d'extraire des attributs spécifiques à partir du XML d'entrée de manière multiplateforme et ne nécessitant pas l'accès à un analyseur/transformateur tiers?

Répondre

0

Vous ne pouvez pas le faire entièrement dans ksh, mais essayez python xml?

Si vous voulez léger, vous pouvez essayer libxml2 et un petit programme C.

1

Vous voudrez peut-être jeter un oeil à ce pure bash implementation, si tout garder dans un script shell est si important. Cela dit, d'autres langages de script tels que Python et Perl sont également très portables, et vous faciliteront la vie beaucoup plus facilement. Le module XML::Twig de Perl, par exemple, est livré avec un script d'utilisateur final appelé "xml_grep", qui peut déjà être passé l'option --text_only pour extraire seulement le texte d'un nœud trouvé à partir d'une recherche complexe. Il ne devrait pas être beaucoup plus difficile de le modifier pour retourner un attribut spécifié.

1

Selon votre signification de "analyse" XMLStarlet peut être une bonne option. Il est entièrement piloté par une ligne de commande et prend en charge la sélection et l'édition de fichiers XML, ainsi que XSLT.

0

Utilisez plutôt CSV pour l'analyse, cela simplifiera non seulement la logique, mais la conversion de xls en csv sera facilement réalisée.