IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

traitement de données XML


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2
    Par défaut traitement de données XML
    Bonjour,

    En parcourant des fichiers XML (XML::Simple), je suis tombé sur un douloureux problème.. je m'explique, j'aimerai "parser" des fichiers afin d'en extraire 2 ou 3 champs spécifiques (il s'agit des fichiers de règles d'OSSEC).. Cependant voilà, le format n'est pas strictement identique. Avec Dumper, j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $VAR1 = {
              'name' => 'web,accesslog,',
              'rule' => [
                        {
                          'level' => '0',
                          'category' => 'web-log',
                          'id' => '31100',
                          'description' => 'Access log messages grouped.'
                        },
                        {
                          'if_sid' => '31100',
                          'level' => '0',
                          'id' => [
                                  '31108',
                                  '^2|^3'
                                ],
                          'description' => 'Ignored URLs (simple queries).',
                          'compiled_rule' => 'is_simple_http_request'
                        },
    ...
    et avec d'autres fichiers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $VAR1 = {
              'name' => 'apache,',
              'rule' => {
                        '30110' => {
                                   'if_sid' => '30101',
                                   'level' => '5',
                                   'group' => 'authentication_failed,',
                                   'match' => 'authentication failure',
                                   'description' => 'User authentication failed.'
                                 },
                        '30200' => {
                                   'noalert' => '1',
                                   'level' => '6',
                                   'match' => '^mod_security-message: ',
                                   'description' => 'Modsecurity alert.'
                                 },
    Je me suis sorti du premier cas avec la boucle suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach my $rule ( @{ $data->{rule} } )
    Mais pour le second, j'ai le droit à l'erreur suivante:

    Not an ARRAY reference at ./parseRules.pl line 26.
    Sans boucle, j'arrive assez facilement à lire mes données ($var->{clé1}->{etc}).. mais ça n'est pas vraiment exploitable.

    Toute aide serait appréciée! Merci d'avance.

    ps: j'ai consulté les tuto de djibril et nicolas.. et tenté de manipés les hash.. mais je ne m'en suis pas sorti!

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Avec des fichiers XML un peu compliqués, XML::Simple n'est pas adapté, d'où la recommandation dans mon article d'utiliser XML::Twig .

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2
    Par défaut
    Effectivement.. avec l'utilisation de Twig, j'ai résolu les problèmes en à peine 10 minutes, je crois que je n'ai simplement pas saisi la complexité du XML dans mon cas..

    Merci en tout cas!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Traitement de données xml (ajax)
    Par skflers61 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/04/2014, 09h13
  2. [AJAX] Traitement de données xml en AJAX
    Par Ervael dans le forum AJAX
    Réponses: 5
    Dernier message: 12/06/2009, 10h22
  3. Réponses: 22
    Dernier message: 02/02/2009, 20h36
  4. Traitement des données formatées en XML
    Par cedricnguessi dans le forum Autres éditeurs
    Réponses: 14
    Dernier message: 10/07/2006, 13h21
  5. [XML] [EXPAT] traitement d'un flux de donnée xml contenant des \n
    Par firejocker dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 23/02/2006, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo