Zum Inhalt springen
  • 0

XML-Tags über reguläre Ausdrücke löschen


occi23

Frage

Hallo,

ich hab zwar schon mit regulären Ausdrücken gearbeitet, hier komme ich aber nicht weiter. Ich möchte aus einer XML-Datei bestimmte Tags komplett löschen. Ein Beispiel wäre das hier:

<tag1>
            <tag2>
                <tag3>

Die Ausgangstags sollen dann separat gelöscht werden. Wie stelle ich das mit regulären Ausdrücken an? Ich müsste ja erstmal den Zeilenumbruch löschen, was aber mit \n, \r oder \r\n nicht geht. Danach müsste er auch die Leerzeichen vor dem 2. Tag löschen, das geht mit .*?. Beim Zeilenumbruch komm ich nicht weiter. Eigentlich sollte der Linux-Zeilenumbruch gehen, da die XML unter Linux erstellt wurde.

Ich teste das ganze hier mit Notepadqq unter Ubuntu 16.05.

Link zu diesem Kommentar
Auf anderen Seiten teilen

5 Antworten auf diese Frage

Empfohlene Beiträge

  • 0

XML-Dateien sollten nicht mit regulären Ausdrücken geparsed werden:
https://stackoverflow.com/questions/6751105/why-its-not-possible-to-use-regex-to-parse-html-xml-a-formal-explanation-in-la

Du merkst ja selber, dass es gar nicht so trivial ist, da du z.B. auch Zeilenumbrüche berücksichtigen müsstest.
Das beste ist, du lässt die XML-Datei mittels einer geeigneten Bibliothek (mit welcher Sprache entwickelst du?) und löschst dann die Einträge aus der DOM-Struktur und generierst eine neue XML-Datei.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

@V1RTU4L

Mal davon abgesehen, dass du offenbar nicht die komplette Frage gelesen hast, hat XSLT hier erst mal gar nichts zu suchen. Es geht hier um ein reines Parsen von XML-Strukturen. Ein XSL-Prozessor ist nur nötig, wenn es auch ein geeignetes Zielformat gibt. Wenn die Daten nur irgendwie in den Speicher kommen sollen ist es recht nutzlos.

Wie @Whiz-zarD schon schrieb sollte man einen Parser nutzen. Ob das nun ein DOM- oder ein Ereignisbasierter-Parser (SAX, ...) lässt sich i.d.R. vom Anwendungsfall her ableiten. Bibliotheken kommen erst in Frage, wenn es sich tatsächlich um eine Programmiertätigkeit handelt. Davon habe ich allerdings nichts gelesen, ggf. wird die Anwendung nur als reiner Texteditor verwendet.

@occi23Was ist dein Ziel? Und was willst/ kannst du benutzen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 8 Stunden schrieb etreu:

Ein XSL-Prozessor ist nur nötig, wenn es auch ein geeignetes Zielformat gibt. Wenn die Daten nur irgendwie in den Speicher kommen sollen ist es recht nutzlos.

Ich hätte die Frage auch so gedeutet, dass das Zielformat "dieses XML ohne diese Tags" ist. 

Kann natürlich sein, dass deine Interpretation der ungenauen Fragestellung treffender ist.

vor 8 Stunden schrieb etreu:

Was ist dein Ziel? Und was willst/ kannst du benutzen?

Du hast offenbar nicht die komplette Frage gelesen, hm? ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...