XML-Dokument nur bis zu einer bestimmten Ebene parsen
Stevo
- perl
0 Christian Kruse0 Stevo0 Christian Kruse0 Stevo
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
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
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.)
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
Hallo Christian!
<a>
<b><![CDATA[Hier drin darf alles stehen ausser ]]></b>
</a>
So hat's perfekt (auch mit XML::Simple) geklappt. Danke!!!
Stevo