PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : XML-Attribut mit regexp


PHuV
2011-12-01, 19:22:23
Weiß jemand, wie man in XML-Attributen ein RepExp einbaut?

Ich habe eine Datei mit Namen

Datei_111202_030000.log

welche natürlich täglich wechselt. Und dann eine XML-Datei für einen Python-Parser mit:

<fileparameter reportlabel="IMPORT" infile="verz1/Datei_xxx.log" outfile="Datei.log.html"></fileparameter>

Da die Datei nun täglich wechselt, kann ich hier keinen festen String reinschreiben. Bisher sind alle XML-Parserdateien nur mit fixen Dateinamen aufgebaut, und ich hätte hier gerne variable Dateinamen.

Jedoch funktioniert hier die normale regexp-Ersetzung nicht, da der Python-Parser wohl was festes erwartet. An anderen Stellen funktionieren regexp (für Filterstrings) sehr wohl.

Gast_samm
2011-12-02, 11:56:29
Zum Verständnis:
Der Python-Parser liest also eine XML-Datei ein, und innerhalb dieser Datei steht der Dateiname der Logdatei, als Wert des Attributs infile. Soweit korrekt?
Ist deine Frage also: "Der in Python geschriebene Parser bricht beim Einlesen der XML-Datei ab, weil er einen festgelegten Wert des Attributs infile erwartet - wie sieht ein regulärer Ausdruck für dieses Attribut aus?"

Falls das deine Frage sein sollte: '[a-zA-Z0-9\_]+\.log' z.B., oder falls du Zugriff auf das Datum und die Laufnummer / Zeit (?) separat brauchst: 'Datei\_([0-9]{6})\_([0-9]{6})\.log' Da könntest du dann auf die Ausdrücke in runden Klammern mit \1 (Datum) und \2 (Laufnummer / Zeit oder sowas) zugreifen.


Deine XML-Datei hätte ausserdem einen Fehler, wenn dein Beispiel Copy / Paste war, weil dem Wert für das Attribut infile ein Anführungszeichen fehlt.