Stevo: XML-Dokument nur bis zu einer bestimmten Ebene parsen

Liebe Leute!

Folgendes Problem: Mein XML-Dokument hat in etwa folgende Struktur:

<a>
     <b>xxx</b>
     <b>xxx</b>
     <b>
          <c>yyyyy</c>
     </b>
     <b>
          <c>yyyyy</c>
          <d />
     </b>
     <b>xxx</b>
</a>

Mir ist klar, wie ich alles parsen kann, aber ich würde gerne quasi nur bis zur Ebene "<b>" parsen und alles was dann zwischen "<b>" und "</b>" steht, als Text vorliegen haben.

Alternativ: Wie bekomme ich die Tag's unter <b> wieder genauso hin, wie sie waren? Meine Versuche mit XML:Simple sind da bisher nicht zufriedenstellend.

Vielen Dank!

Stevo

  1. Hallo Stevo,

    [... XML-Dokument ...]

    Mir ist klar, wie ich alles parsen kann, aber ich würde gerne quasi nur bis zur Ebene "<b>"
    parsen und alles was dann zwischen "<b>" und "</b>" steht, als Text vorliegen haben.

    Dann wirst du es entweder maskieren muessen oder in eine CDATA-Umgebung einschliessen muessen.
    Du koenntest es prinzipiell auch wieder umwandeln in einen String, aber das waere
    ziemlich doppelt gemoppelt.

    Grüße,
     CK

    --
    Nur die Weisesten und die Dümmsten können sich nicht ändern.
    1. Hallo Stevo,

      [... XML-Dokument ...]

      Mir ist klar, wie ich alles parsen kann, aber ich würde gerne quasi nur bis zur Ebene "<b>"
      parsen und alles was dann zwischen "<b>" und "</b>" steht, als Text vorliegen haben.

      Dann wirst du es entweder maskieren muessen oder in eine CDATA-Umgebung einschliessen muessen.

      CDATA bedeutet dann aber wieder auch, dass ich eine DTD oder ein Schema angeben muss, oder? (Benutze im Moment nur XML::Simple und das kann meines Wissens kein Validierung, sondern nur Wohlgeformtheit.)

      1. Hallo Stevo,

        Dann wirst du es entweder maskieren muessen oder in eine CDATA-Umgebung einschliessen
        muessen.

        CDATA bedeutet dann aber wieder auch, dass ich eine DTD oder ein Schema angeben muss,
        oder?

        Nein, warum?

        <a>
         <b><![CDATA[Hier drin darf alles stehen ausser ]]></b>
        </a>

        (Benutze im Moment nur XML::Simple und das kann meines Wissens kein Validierung, sondern nur
        Wohlgeformtheit.)

        Richtig.

        Grüße,
         CK

        --
        Der Verstand steht ueber allem. Was durch die Vorstellungskraft nicht geschaffen werden kann, existiert nicht.
        1. Hallo Christian!

          <a>
           <b><![CDATA[Hier drin darf alles stehen ausser ]]></b>
          </a>

          So hat's perfekt (auch mit XML::Simple) geklappt. Danke!!!

          Stevo