8
votes

Comment puis-je utiliser XML de Perl :: libxml pour extraire un attribut dans une balise?

J'ai un fichier XML xxx

je veux extraire la valeur String2 ici .. Et je veux aussi la définir sur une nouvelle valeur.

Comment Pour faire ça?


0 commentaires

4 Réponses :


17
votes

Utilisez les expressions XPath xxx

et lire la documentation, bien sûr :)


3 commentaires

Et bien sûr, si vous voulez marcher le DOM vous-même, vous pouvez le faire aussi. XML :: libxml utilise l'API W3C DOM, qui est la même que vous utilisez dans JavaScript. Donc, il devrait être facilement familier (bien que l'API suce, au moins sa standard).


@Anandan écrivant 'Temme' au lieu de "Dis-moi" n'est pas cool. En fait, cela remet certaines personnes telles que moi qui doit mettre des efforts supplémentaires pour analyser mentalement ce que vous dites. La qualité des réponses que vous obtenez en réponse à vos questions est directement proportionnelle à l'effort que vous mettez en composant des questions claires et bien définies.


@jrockway Crappy Dom API peut être relativement facile fixé par quelques emballages minces qui le rendront plus prell. Le plus gros avantage de XML :: libxml sur d'autres modules certes plus pratiques est toujours sa performance. Vitesse et mémoire sage



8
votes

Vous pouvez utiliser XML :: Parser pour obtenir la valeur aussi bien. Pour plus d'informations, reportez-vous au XML :: Documentation d'analyseur :

#!/usr/local/bin/perl
use strict;
use warnings;


use XML::Parser;
use Data::Dumper;

my $attributes = {};

my $start_handler = sub
{
    my ( $expat, $elem, %attr ) = @_;
    if ($elem eq 'TAG')
    {
        $attributes->{$attr{'string1'}} = 'Found';
    }
};


my $p1 = new XML::Parser(
        Handlers => {
            Start => $start_handler
        }
);

$p1->parsefile('test.xml');

print Dumper($attributes);


0 commentaires

2
votes

Je pense que vous êtes peut-être préférable de commencer avec XML :: simple et Jouant un peu d'abord: XXX


2 commentaires

Superficiellement a l'air simple, mais XML :: Simple Structures de données Simple Mise à la mémoire pour les gros documents et que les goûts deviennent vraiment cryptiques vraiment rapidement.


@Singingfish Jetez un coup d'œil à la post de l'OP. Il ne connaît pas assez pour pouvoir commencer à apprendre les autres bibliothèques. Il a besoin de faire un peu pour apprendre Certains afin qu'il puisse arriver à la scène où il sait ce que vous entendez dans votre commentaire.



0
votes

Merci pour vos réponses. J'ai trouvé une autre réponse dans " Traitement de fichier de configuration avec libxml2 " que j'ai trouvé très utile.


0 commentaires