Parser für XML-Datei schreiben - Zeichen maskieren?
Andreas-Lindig
- xml
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
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
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
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
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
Hi,
& muß dagegen auch im Element-Inhalt ersetzt werden.
weil die Maskierungen mit & anfangen oder was?
Richtig.
cu,
Andreas
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
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