Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/08/2012, à 20:56

Jerem95

Extraire des données d'un fichier XML

Bonjour à tous,

Voilà j'aimerai bien extraire d'un fichier XML les différentes ressources ( soit url, ressource, et le name ) dont le <roles=Role_TOTO>

Voici le fichier XML

<configuration xmlns="http://xml.juniper.net/ive-sa/7.1R9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" iveData="1831" saData="1716">
    <users>
        <resource-profiles>
            <web-profiles>
                <web-profile>
                    <custom>
                        <url>http://10.3.4.6</url>
                        <webacl>
                            <rules>
                                <rule>
                                    <name>Allow http://10.3.4.6:80/*</name>
                                    <action>allow</action>
                                    <resource>http://10.3.4.6:80/*</resource>
                                </rule>
                            </rules>
                        </webacl>
                        <rewriting-options>
                            <selective-rewriting>false</selective-rewriting>
                        </rewriting-options>
                        <bookmarks>
                            <bookmark>
                                <name>HTTP - 10.3.4.6</name>
                                <description></description>
                                <url>http://10.3.4.6</url>
                                <new-window>false</new-window>
                                <no-address-bar>false</no-address-bar>
                                <no-tool-bar>false</no-tool-bar>
                                <apply>all</apply>
                                <roles xsi:nil="true"/>
                            </bookmark>
                        </bookmarks>
                    </custom>
                    <name>HTTP - 10.3.4.6</name>
                    <description></description>
                    <roles>Role_TOTO</roles>
                </web-profile>
                <web-profile>

J'ai essayé avec un grep mais je n'ai pas trouver comment faire une conditiion ET.

Merci par avance

Hors ligne

#2 Le 26/08/2012, à 00:06

darunia_goron

Re : Extraire des données d'un fichier XML

D'après le man,

$ man grep
   Matching Control
       -e PATTERN, --regexp=PATTERN
              Use  PATTERN  as  the  pattern.   This  can  be  used to specify
              multiple search patterns, or to protect a pattern beginning with
              a hyphen (-).  (-e is specified by POSIX.)

Donc, je propose

grep -e "url" -e "resource" -e "name" nom_du_fichier

Après, j'imagine qu'il y a des outils plus adapté en bash qu'un simple grep pour parser du XML. Par exemple en C ou en Python, on utiliserai libxml2.

Dernière modification par darunia_goron (Le 26/08/2012, à 00:07)

Hors ligne

#3 Le 26/08/2012, à 14:27

Jerem95

Re : Extraire des données d'un fichier XML

Merci beaucoup pour la réponse mais maintenant est-ce possible de dire que je veux tous ça mais seulement pour les Roles Role_TOTO car j'ai plusieurs rôle dans mon fichier XML

Edit :

Est-ce que ça sa pourrait être bon ?

grep -e "url" -e "resource" -e "name" WEb.txt --regex="Role_TOTO"



Merci

Dernière modification par Jerem95 (Le 26/08/2012, à 14:29)

Hors ligne

#4 Le 26/08/2012, à 14:46

darunia_goron

Re : Extraire des données d'un fichier XML

Uniquement avec grep, je ne pense pas que ça soit possible. Il faut que tu utilises un outil prévu pour manipuler le XML.
Après une petite recherche :

$  apropos xml
dh_installxmlcatalogs (1) - install and register XML catalog files
foomatic-combo-xml (1) - <put a short description here>
foomatic-perl-data (1) - generate Perl data structures from XML
pdftohtml (1)        - program to convert PDF files into HTML, XML and PNG images
update-xmlcatalog (8) - maintain XML catalog files
xmlcatalog (1)       - Command line tool to parse and manipulate XML or SGML catalog files.
xmllint (1)          - command line XML tool

xmllint semble faire l'affaire. Après, je ne sais pas l'utiliser donc je ne peux pas te dire quels arguments lui passer.

Hors ligne

#5 Le 26/08/2012, à 14:57

Jerem95

Re : Extraire des données d'un fichier XML

Ok merci beaucoup pour ton aide, je vais voir cet outil ou sinon je ferai la bonne vielle methode du fichier ou je supprime ce dont j'ai pas besoin smile

Hors ligne