2015-11-06 11 views
0

Je suis un débutant en Python. Je voudrais créer un script python qui vérifie (peut-être l'analyse syntaxique) chaque fichier xml validé pour la disponibilité d'une étiquette spéciale (par exemple status = "Needs Review"). Si le fichier xml est constitué de cette balise, envoyez un e-mail avec un lien vers le sujet. Sinon, continuez la validation sans envoyer d'e-mail.Script post-commit python analysant un fichier xml et envoyant un e-mail si une balise xml est disponible

Est-ce que quelqu'un a un exemple de code pour réaliser cela comme un script python. xml-file-échantillon:

<topic template="Default" status="Needs Review" lasteditedby="user1"> 
    <title translate="true">Sample Title</title> 
    <body> 
    <header> 
     <para styleclass="Heading1"><text styleclass="Heading1" translate="true">Statistische Messungen</text></para> 
    </header> 
    <para styleclass="Normal"><text styleclass="Font Style" style="font-family:&apos;Optima LT&apos;; font-size:10pt; font-weight:normal; font-style:normal; text-decoration:none; text-transform:none; vertical-align:baseline; color:#000000; background-color:transparent; letter-spacing:normal; letter-scaling:100%;" translate="true">This is a sample Text</text></para> 
    </body> 
</topic> 

Je suppose qu'il ya différentes façons de le faire et je sais qu'il ya des codages de python pour la post-commits, mais je ne peux pas trouver codages pour cette question.

+0

Avez-vous besoin d'extraire ** Statistische Messungen ** et ** Ceci est un exemple de texte **? –

+0

Je dois vérifier chaque fichier xml (en validant svn) pour le status-tag s'il est réglé sur "Need Review" Si ce statut est défini dans chaque fichier xml un e-mail contenant une liste de fichiers correspondants doit être envoyé à l'évaluateur.Cet extrait de code est un bon extrait.Il suffit de grep le contenu des fichiers xml validés au lieu de l'extrait de code xml. –

Répondre

0

Cet extrait de code de Andres est une bonne base. Je dois juste grep le contenu des fichiers xml Commited, tels comme "svn regarder à changé" (pour les fichiers xml-) et pour chaque fichier XML « svn cat look.

from lxml import html 
from mailer import Mailer 
from mailer import Message 
import sys, os 

xml = """<topic template="Default" status="Needs Review" lasteditedby="user1"> 
    <title translate="true">Sample Title</title> 
    <body> 
    <header> 
     <para styleclass="Heading1"><text styleclass="Heading1" translate="true">Statistische Messungen</text></para> 
    </header> 
    <para styleclass="Normal"><text styleclass="Font Style" style="font-family:&apos;Optima LT&apos;; font-size:10pt; font-weight:normal; font-style:normal; text-decoration:none; text-transform:none; vertical-align:baseline; color:#000000; background-color:transparent; letter-spacing:normal; letter-scaling:100%;" translate="true">This is a sample Text</text></para> 
    </body> 
</topic>""" 


tree = html.fromstring(xml) 
if tree.xpath('//topic/@status')[0] == "Needs Review": 
    print "This topic needs review" 
    print "Sending e-mail" 
    # Call email function here... 
else: 
    print "This topic doesn't need review" 
    print "Continuing commit without sending e-mail" 
    # Continue with commit