Ich muss eine Menge Textdateien analysieren, wobei jede Textdatei ein oder mehrere XML-Dokumente enthält. Ich weiß, dass jedes XML in einem Envelope-Tag als Root-Tag eingeschlossen ist, aber sie haben unterschiedliche Namespaces. Ich habe versucht, einen regulären Ausdruck zu erstellen, um diese XML-Dokumente aus einer Textdatei zu holen, und es funktioniert für die meisten von ihnen, aber für einige bekomme ich eine katastrophale Backtracking-Fehler. Ich denke es liegt daran, dass der Text zu groß ist und mein Ausdruck nicht sehr effizient ist. Ich bin nicht wirklich gut in Regex, also kämpfe ich darum, das zu beheben.Suchen von Text zwischen zwei Tags mit Variablen-Namespace
Das Muster i gesucht habe, ist: <namespace:envelope attributes>XML</namespace:envelope>
Was habe ich mit so weit kommen ist: (?i)<[^:]*?:envelope[^>]*?>.*?<\/[^:]*?:envelope>
Jede Hilfe wäre sehr geschätzt.
http://stackoverflow.com/questions/8577060/why-is-it-such-a-bad-idea-to-parse-xml-with-regex –