Hallo,
stehe vor der Aufgabe aus einem unstrukturierten Text Klammerausdrücke zu parsen und nach XML zu verarbeiten zu müssen. Normaler Weise würde ich für eine solche Aufgabe Perl, Python oder Java nehmen nur steht das im Kontext nicht zu Verfügung.
Das Problem ist, jeweils die öffnenden der schließenden Klammer zuzuordenen.
z.B.:
(a * b - (c+d) )
Die Klammern können beliebig tief verschachtelt sein.
Daraus sollte sowas ähnliches entstehen:
Bei Sprachen, wie z.B Java würde man nun mit Hilfe einer Stack-Struktur
das lösen. Wie könnte man das Problem der Klammer-Zuordnung mit XSLT lösen? Kann man einen Stack nachbilden? Oder gibt es dafür eine andere Lösung?
Den Text hole ich mir mit:
Ich bin bei dieser Verfahrensweise auch nicht sicher, ob man mit einem regex
auskommen könnte und das dann rekursiev aufruft???
Für jeden Hinweis und/oder Idee wäre ich wirklich sehr dankbar.
vielen Dank
Micha
stehe vor der Aufgabe aus einem unstrukturierten Text Klammerausdrücke zu parsen und nach XML zu verarbeiten zu müssen. Normaler Weise würde ich für eine solche Aufgabe Perl, Python oder Java nehmen nur steht das im Kontext nicht zu Verfügung.
Das Problem ist, jeweils die öffnenden der schließenden Klammer zuzuordenen.
z.B.:
(a * b - (c+d) )
Die Klammern können beliebig tief verschachtelt sein.
Daraus sollte sowas ähnliches entstehen:
Code:
<bracket> <c>a</c> <o>*</o> <c>b</c> <bracket> <c>c</c> <o>+</o> <c>d</c> </bracket> </bracket>
das lösen. Wie könnte man das Problem der Klammer-Zuordnung mit XSLT lösen? Kann man einen Stack nachbilden? Oder gibt es dafür eine andere Lösung?
Den Text hole ich mir mit:
Code:
<xsl:analyze-string select="unparsed-text('text.txt','UTF-8')" regex="..."> <xsl:matching-substring> ? </xsl:matching-substring> <xsl:non-matching-substring> ? </xsl:non-matching-substring>
auskommen könnte und das dann rekursiev aufruft???
Für jeden Hinweis und/oder Idee wäre ich wirklich sehr dankbar.
vielen Dank
Micha
Comment