Page 1 sur 1

[R] Rendre un fichier XML lisible au format TXT

Posté : mer. 23 avr. 2014 19:47
par franco
Bonjour.

Je ne sais pas si vous le savez, mais maintenant, malwarebyte's antimalware fournit les rapports au format XML...

J'ai donc fait un script qui m'enregistre le dernier rapport sur le bureau, avec l'extension TXT...

Et j'ai fait des "manipulations" pour que le fichier soit lisible de tous...

En fait, je voulais supprimer tous les </ ... >, ne sachant pas ce que contient ses balises </>... en fait, j'en connais, mais pas tous...

J'ai fait ceci :
► Afficher le textecode
En fait :

Code : Tout sélectionner

    For $i = 1 To _FileCountLines($mbamlogTXT)
        FileWriteLine($_rapport2, StringRegExpReplace(FileReadLine($mbamlogTXT, $i), "\</.*", "") & "")
    Next
Ce bout de code me supprime ce qu'il y a après </, et il supprime parfois des éléments qui ne faut pas.
Je veux supprimer que les balises </> et ce qu'elles contiennent...

Pouvez-vous m'aider ?

Merci :)
@ bientôt !

Re: [..] Rendre un fichier XML lisible au format TXT

Posté : mer. 23 avr. 2014 21:13
par jguinch
Perso, je ne comprends pas trop ta demande.
Tu pourrais poster un fichier XML et nous montrer le résultat que tu attends ?

Re: [..] Rendre un fichier XML lisible au format TXT

Posté : mer. 23 avr. 2014 21:46
par franco
Salut.

je vais mettre le fichier XML en pièce jointe...

Je vais citer un passage :
<engine>
<version>2.00.0.1000</version>
<rules-database>v2014.03.27.02</rules-database>
<swissarmy-database>v2014.03.25.01</swissarmy-database>
<license>premium</license>
<file-protection>enabled</file-protection>
<web-protection>enabled</web-protection>
<self-protection>disabled</self-protection>
</engine>
etc...
En gros, je veux supprimer que les balises fermantes.
C'est à dire, en comparant avec le texte cité ci-dessus :
</version>
</rules-database>
</swissarmy-database>
</license>


Mais je ne sais pas toujours ce que contient les balises, et donc les balises fermantes non plus.

Si je vais quelle expression régulière il faut utiliser, je l'aurais fait... Mais celle que j'ai utilisé n'est pas la bonne.


Voilà.

Merci de ta réponse et de ton aide.
@+

Re: [..] Rendre un fichier XML lisible au format TXT

Posté : mer. 23 avr. 2014 21:52
par jguinch
Mais ça va ressembler à rien :shock: :)
Un truc comme ça ?

Code : Tout sélectionner

$sUserContent = StringRegExpReplace( FileRead("mbam-log-2014-03-27 (10-51-54).xml"), "</[^>]+>", "")
ConsoleWrite($sUserContent)

Re: [..] Rendre un fichier XML lisible au format TXT

Posté : ven. 25 avr. 2014 09:16
par franco
Salut.

« Mais ça va ressembler à rien »

Si, car les balises ouvrantes, je les "transforme" moi même. ^^


En fait, avant la version 2 de malwarebyte, les rapports étaient sous format TXT.
Lisible aussi bien par les helpeurs que les helpés...

Maintenant, c'est devenue illisible. Car ce type de rapport, on le regarde via le bloc note, afin de voir ce qu'il en est.

Un exemple d'un rapport au format TXT : http://cjoint.com/14av/DDnu1lWnTFS_rapp ... rebyte.txt

Je le cite, vu que ce type de lien s'efface dans le temps :
► Afficher le texterapport mbam - TXT
Rien à voir avec le rapport au format XML que j'ai mis en pièce jointe ici.

==============================

Maintenant, merci pour ton code, il a résolu mon souci :)

Voici le code final (je peux encore l'améliorer, mais il est opérationnel)
► Afficher le textecode

Voilà ;)
Merci à toi :D

Bonne journée / soirée. 8)

Re: [R] Rendre un fichier XML lisible au format TXT

Posté : ven. 25 avr. 2014 14:49
par jguinch
Juste deux remarques :
- dans ton code, tu déclares des variables que tu n'utilise pas (et à l'inverse tu utilise des variables non déclarées). C'est pas grave, mais c'est juste plus propre de supprimer les déclaration inutiles - et éventuellement de déclarer les autres)
- tu as deux fois _ReplaceStringInFile($recent_mbamlogTXT, "<items>", "[items]")

Un code un peu différent, qui ne nécessite pas d'include (ça n'enlève rien au travail que tu as fait, qui est tout aussi fonctionnel) :
► Afficher le texte