Andreas-Lindig: Parser für XML-Datei schreiben - Zeichen maskieren?

Hallo Forum,

jetzt steck ich doch wieder in Details fest. Also ich will die Daten für das nächste Projekt in XML-Dateien ablegen und für die HTML-Darstellung diese Dateien auslesen und die Inhalte der einzelnen Elemente formatiert ausgeben. Dazu muß ich ja die einzelnen Tags auslesen - mit einem regExp. Was ist aber, wenn in dem Element als Inhalt (text) zufällig wieder so ein Tag auftaucht?

Beispiel:

<elemente>
   <element farbe="rot">
      dieses <element></element> hat im Farbattribut den Wert "rot".
   </element>
   <element farbe="blau">
      dies ist der Text in blau
   </element>
</elemente>

wenn ich jetzt mit /<element.*</element>/U als regExp versuche einen Knoten auszulesen hört der gefundene String ja mitten im Inhaltstext des ersten Elements auf.

Ich könnte < und > zwar maskieren, aber macht man das so? Sollten in der XML-Datei nicht nur die reinen Daten stehen? also < statt >?

Gruß, Andreas

--
<img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
http://was-ist-das.andreas-lindig.de
  1. FsmE,

    Hallo Forum,

    jetzt steck ich doch wieder in Details fest. Also ich will die Daten für das nächste Projekt in XML-Dateien ablegen und für die HTML-Darstellung diese Dateien auslesen und die Inhalte der einzelnen Elemente formatiert ausgeben.

    Wie? Mit welcher Methode/Programmiersprache? Oder mit XSLT?

    In sensibus mistis,
    HaThoV

    --
    Besuchen Sie http://www.4html.de, wenn Sie an einer
    Neuen Generation von Web-Publishing mitarbeiten wollen.
  2. Hallo Andreas,

    jetzt steck ich doch wieder in Details fest. Also ich will die Daten für das nächste
    Projekt in XML-Dateien ablegen und für die HTML-Darstellung diese Dateien auslesen und die
    Inhalte der einzelnen Elemente formatiert ausgeben. Dazu muß ich ja die einzelnen Tags
    auslesen - mit einem regExp.

    Ein RegEx reicht nicht aus, XML zu parsen. Genau so wenig, wie ein RegEx ausreicht, HTML zu
    parsen. Das Thema hatten wir schon öfter. Warum benutzt du nicht einen der XML-Parser, die
    es wie Sand am Meer gibt?

    Ich könnte < und > zwar maskieren, aber macht man das so? Sollten in der XML-Datei nicht nur
    die reinen Daten stehen? also < statt >?

    Wenn innerhalb von <element> nur Text stehen darf, dann *muss* < sogar durch > maskiert
    werden. Und " durch ".

    Grüße,
     CK

    --
    Das Sein entsteht aus dem Nicht-Sein.
    http://wwwtech.de/
    1. Hi,

      Wenn innerhalb von <element> nur Text stehen darf, dann *muss* < sogar durch > maskiert
      werden.

      Nö.
      < wäre wesentlich angebrachter für < ;-)

      Und " durch ".

      Im Element-Inhalt? Nicht daß ich wüßte. In einem Attributwert, der durch " begrenzt wird: ja.

      Analog dazu ' in einem '-begrenzten Attributwert.

      & muß dagegen auch im Element-Inhalt ersetzt werden.

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.Mud-Guard.de/
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. Hallo MudGuard,

        Nö.
        < wäre wesentlich angebrachter für < ;-)

        isjaschongut. Wäre beim Test ja eh rausgekommen ;-)

        & muß dagegen auch im Element-Inhalt ersetzt werden.

        weil die Maskierungen mit & anfangen oder was?

        Gruß, Andreas

        --
        <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
        http://was-ist-das.andreas-lindig.de
        1. Hi,

          & muß dagegen auch im Element-Inhalt ersetzt werden.
          weil die Maskierungen mit & anfangen oder was?

          Richtig.

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.Mud-Guard.de/
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    2. Hi,

      schön, Dich hier zu treffen - es geht ja um die Zitateseite ;-)

      Ein RegEx reicht nicht aus, XML zu parsen.

      hab' ich auch so nicht gemeint. Das war jetzt für das Beispiel, erstmal einzelne Knoten zu isolieren.

      Das Thema hatten wir schon öfter. Warum benutzt du nicht einen der XML-Parser, die es wie Sand am Meer gibt?

      ich seh' mich um - bis morgen...

      Wenn innerhalb von <element> nur Text stehen darf, dann *muss* < sogar durch > maskiert werden. Und " durch ".

      schön. Was maskierst Du denn alles noch so? also: die zwei obengenannten (kommen ja auch in den Tags selber vor), dann hast Du ein Zeichen für die Zitatzeichen der User, und nochwas?

      Gruß, Andreas

      --
      <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
      http://was-ist-das.andreas-lindig.de
      1. Hallo Andreas,

        schön, Dich hier zu treffen - es geht ja um die Zitateseite ;-)

        Habs mir gedacht ;-)

        Ein RegEx reicht nicht aus, XML zu parsen.

        hab' ich auch so nicht gemeint. Das war jetzt für das Beispiel, erstmal einzelne Knoten
        zu isolieren.

        Hab ich mir auch gedacht ;-) Ich wollte es trotzdem nochmal erwähnen, fürs Archiv. Ist sonst
        irreführend.

        Wenn innerhalb von <element> nur Text stehen darf, dann *muss* < sogar durch >
        maskiert werden. Und " durch ".

        schön. Was maskierst Du denn alles noch so? also: die zwei obengenannten (kommen ja auch
        in den Tags selber vor), dann hast Du ein Zeichen für die Zitatzeichen der User, und
        nochwas?

        Darüber können wir uns mal in einer Mail unterhalten ;-) Ich bin jetzt auch gleich
        verabredet, sorry.

        Grüße,
         CK

        --
        Fatal! Ich kann kein Reserve-Offizier mehr sein!
        http://wwwtech.de/