Ankündigung

Einklappen
Keine Ankündigung bisher.

Regulärer Ausdruck um <> zu entfernen innerhalb von XM

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Regulärer Ausdruck um <> zu entfernen innerhalb von XM

    Servus,

    habe folgendes Problem:

    Ich suche einen regulären Ausdruck der mir z.B. in folgender Zeile alle spitzen Klammern <> entfernt:

    <meinTag>Dies ist <huhu> ein Test <genau></meinTag>

    Innerhalb von <meinTag> sollen nun ALLE spitzen Klammern durch runde Klammern ersetzt werden, sodaß es am Ende das Ergebnis liefert:

    <meinTag>Dies ist (huhu) ein Test (genau)</meinTag>

    Kann mir jemand sagen, wie ich das mache?

    Danke!

  • #2
    Geht auch mit String-Operationen.

    <meinTag> suchen, dann </meinTag> suchen (strpos), alle spitzen Klammern dazwischen mit str_replace() ersetzen.

    Thread verschoben:
    Fortgeschrittene Anfänger

    Kommentar


    • #3
      ich denke das wäre zu kompliziert, weil in dem XML dokument viel zu viel unterschiedliche Tags vorhanden sind. Dann müsste ich immer einen anderen Tag suchen.

      Ist es nicht mit einem regulären Ausdruck möglich?

      Kommentar


      • #4
        im regulären Ausdruck musst du auch wissen, zwischen welchen Tags du die Klammern ersetzen willst

        Kommentar


        • #5
          nein, das ist möglich - am schnellsten/einfachsten wohl per replace_callback. tag-inhalte suchen, im callback dann ersetzen ... 2 min arbeit

          den regexp zum suchen des inhalts der tags kriegst du wohl hin? im callback verwendest du dann einfach str_replace ...

          Kommentar


          • #6
            Kann ich dem Ausdruck nicht mitgeben, das erste und letzte auftreten eines Klammer Paars <*> soll ignoriert werden, und der rest ersetz werden?

            Kommentar


            • #7
              Und was genau ist "das erste" und "das letzte"?

              Kommentar


              • #8
                Neuer Plan: Du benennst das erste und das letzte Tag (wennde den Namen nicht kennst, is was schief gelaufen) in irgendwas anderes um, zum Beispiel "--dummy--" (wahrscheinlichkeit ist groß, dass der so im Text nicht vorkommt ...), dann informierste dich über strstr(); und schreibst den restlichen Algorithmus

                Aber mal ernsthaft: Was solln das genau werden?!?

                Kommentar


                • #9
                  Ich möchte ein altes Datenbank-System in ein neues überführen.

                  Das alte DB-System exportiert die Daten in ein XML File. Und jeder eintrag bekommt halt einen Tag. Innerhalb eines Eintrages kommen gelegentlich aber auch <> vor. Deswegen muss ich das ändern.

                  Ich kenne nicht alle Tags, die vorkommen. Die Datei hat über 400.000 Zeilen. Hat jemand noch eine bessere Idee?

                  Kommentar


                  • #10
                    Das XML ist also nicht valide?

                    Ich versteh nicht ganz wie es sein kann, dass du nicht alle Tags kennst. Du musst doch wissen welches die Container-Tags sind, sonst kommst du ja so oder so nicht weiter.

                    Kommentar


                    • #11
                      Nein, demzufolge wird das XML nicht valide sein

                      Ich analysiere die alte Datenbank. Aber um die erstmal mit einem Parser auslesen zu können, muss die XML Datei natürlich valide sein. DESWEGEN will ich innerhalb der Tags alle klammern entfernen.

                      Kommentar


                      • #12
                        Das alte DB-System exportiert
                        Was für eine Datenbank ist es denn?
                        in ein XML File
                        Ist das die einzige Möglichkeit?

                        Kommentar


                        • #13
                          Die Exportierung sollte schon die <> aus den Datenfelder escapen...

                          Kommentar


                          • #14
                            Das Export System ist von 1995. Die DB ist uralt. Das kann das nicht. Deswegen, wie geht es sonst?

                            Kommentar


                            • #15
                              Um was für eine DB handelt es sich eigentlich? Vielleicht wäre auch nen normales dump möglich?

                              Kommentar

                              Lädt...
                              X