@lex: XML mit Sonderzeichen mittels regexp maskieren

Beitrag lesen

Hallo,

versuche mich schon seit einiger Zeit an folgender Problematik. Ich bekomme einen XML-String, der Sonderzeichen im Inhalt enthält. Nun möchte ich bei der Generierung einer XML-Datei per Regexp ungültige Zeichen in den Daten maskieren, um Probleme bspw. mit > oder <-Zeichen zu umgehen.

Bsp:
<person><vorname>Hallo T<homas </vorname></person>

Im Element <vorname> ist ein '<' zuviel und das möchte ich nun bei der Ausgaben als &#60; maskieren. Nun schaff ich es nicht den Inhalt von den Element-Tags zu trennen :(

Hat jemand vielleicht einen Ansatz?

Hiermit probiere ich gerad rum:

my $test = "<person><vorname>V<o?r1</vorname><person>";
$test =~ /(<(.*)>)^<(<(.*)>)/sprintf ("&#%d;", ord ($1))/ge;
print $test;

Besten Dank im Voraus
Alex