Hallo miteinander
ich versuche gerade eine Regex zu basteln, die ich zum Bearbeiten von XML-Dateien benötige.
Ich will bei allen Dateien, bei über 2
Dabei habe ich jetzt das Problem, dass ich nicht weiss wie ich die XMLs ausschliessen kann, die bereits ein
Hier mal die Regex, die ich mit den Modifiern "global", "single line" und "case insensitive" nutze und entsprechend gruppiert habe, wie ich sie später brauche:
Hier ein XML, das noch keine Sprachangabe hat:
So sollte die XML danach aussehen:
Nun sollten die Regex natürlich nicht matchen, wenn schon eine Node
Wie muss ich jetzt die Regex anpassen, damit sie nicht matcht wenn
Ich benutze zum testen übrigens die Website regex101.com/
ich versuche gerade eine Regex zu basteln, die ich zum Bearbeiten von XML-Dateien benötige.
Ich will bei allen Dateien, bei über 2
<audio>
Streams verfügen und noch keine Sprachangabe <language>
haben, diese mit dem TextCrawler einfügen.Dabei habe ich jetzt das Problem, dass ich nicht weiss wie ich die XMLs ausschliessen kann, die bereits ein
<language>
Node haben.Hier mal die Regex, die ich mit den Modifiern "global", "single line" und "case insensitive" nutze und entsprechend gruppiert habe, wie ich sie später brauche:
Hier ein XML, das noch keine Sprachangabe hat:
XML-Quellcode
- <fileinfo>
- <streamdetails>
- <audio>
- <bitrate>192</bitrate>
- <channels>2</channels>
- <codec>AAC</codec>
- </audio>
- <audio>
- <bitrate>128</bitrate>
- <channels>6</channels>
- <codec>dolbydigital</codec>
- </audio>
- <video>
- <aspect>1.839</aspect>
- <bitrate>2016</bitrate>
- <codec>avc1</codec>
- <durationinseconds>142</durationinseconds>
- <height>696</height>
- <scantype>Progressive</scantype>
- <width>1280</width>
- </video>
- </streamdetails>
- </fileinfo>
So sollte die XML danach aussehen:
XML-Quellcode
- <fileinfo>
- <streamdetails>
- <audio>
- <bitrate>192</bitrate>
- <channels>2</channels>
- <codec>AAC</codec>
- <language>ger</language>
- </audio>
- <audio>
- <bitrate>128</bitrate>
- <channels>6</channels>
- <codec>dolbydigital</codec>
- <language>eng</language>
- </audio>
- <video>
- <aspect>1.839</aspect>
- <bitrate>2016</bitrate>
- <codec>avc1</codec>
- <durationinseconds>142</durationinseconds>
- <height>696</height>
- <scantype>Progressive</scantype>
- <width>1280</width>
- </video>
- </streamdetails>
- </fileinfo>
Nun sollten die Regex natürlich nicht matchen, wenn schon eine Node
<language>
bei einem der beiden <audio>
Streams vorhanden ist.Wie muss ich jetzt die Regex anpassen, damit sie nicht matcht wenn
<language>
bereits vorkommt? Ich benutze zum testen übrigens die Website regex101.com/