& Problem
thomas
- xml
0 richard0 Thomas0 richard0 Thomas0 Thomas J.S.0 Thomas0 Christian Kruse0 Thomas0 Thomas J.S.
0 Thomas J.S.
0 Christian Kruse
hi,
vielleicht kann mir jemand von Euch weiterhelfen.
Habe ein JavaServlet welches ich über XML konfiguriere.
Jetzt gibt es ja in XML das Problem das "&" so nicht darstellbar ist sondern mit "&" darstellen muss.
Wollte nun meine SQL Statements konfigurierbar machen aber erkennt das "&" nicht als "&" beim zuweisen zu einer Variablen.
Hatte schon jemand das gleiche Problem und hat es gelöst oder weis jemand wie es geht?
Gruss Thomas
Hallo Thomas!
Ich bin noch nicht ganz so lange in diesem Forum, deshalb kann ich mir die richtig wertvollen Glaskugeln noch nicht leisten.
Deshalb Fragen:
Könntest du den Code (Ausschnitte) posten?
Gibt es eine Fehlermeldung?
Hast du eine XML Datei, welche ein Servlet aufruft oder ein Servlet, welches eine XML Datei öffnet und dann daraus etwas liest?
SQL Statements kommen dann wie ins Spiel?
Wo tritt das Problem auf (Bei der XML Datei/im Servlet/bei der Datenbankanfrage)?
Viel Spass beim Beantworten,
Richard
Hallo Thomas!
Ich bin noch nicht ganz so lange in diesem Forum, deshalb kann ich mir die richtig wertvollen Glaskugeln noch nicht leisten.Deshalb Fragen:
Könntest du den Code (Ausschnitte) posten?
Gibt es eine Fehlermeldung?
Hast du eine XML Datei, welche ein Servlet aufruft oder ein Servlet, welches eine XML Datei öffnet und dann daraus etwas liest?
SQL Statements kommen dann wie ins Spiel?
Wo tritt das Problem auf (Bei der XML Datei/im Servlet/bei der Datenbankanfrage)?Viel Spass beim Beantworten,
Richard
Hi,
sorry für die mageren Infos.
Also zuerst mal das Statement steht in der XML Datei.
Ich greife von dem Servlet auf die XML Datei zu und ordne sie dann über eine Java Klasse den entsprechenden Variablen zu.
Ich habe das Statement mittlerweile fest in den Code reinprogrammiert weil ich das mit dem "&" nicht hinbekommen habe.
Der Fehler wirkt sich wie folgt aus, bei der Datenbankabfrage bringt er mir einen Fehler und bin darauf gestossen das er genau da das SQL Statement abbricht wo das "& normal kommen sollte".
Habe mir dann mal den String ausgegeben wo das Statements steht und er gibt dann immer noch "&" aus statt "&"!
Kann das auch am Zeichensatz liegen?
Hoffe das es jetzt ein bisschen klarer ist ansonsten fragt, ich würde das Problem gerne lösen wollen!
Thomas
Hallo Thomas!
Also, mal so ein paar gedankliche Vorschläge (im wesentlichen mein vorredner):
Wenn du das & in einem CDATA Bereich verwendest, dann ist es unmaskiert zu verwenden.
(hmm) also, welche JAVA Klasse verwendest du denn? Ich hab mal mit XALAN (umsonst bei SUN) gearbeitet, das hat eigentlich gut funktioniert. (Vielleicht ein DOM-Parserproblem?)
Ansonsten könntest du ja mal versuchen, deine SQL-Statements in XML mit CDATA zu versehen und das & unmaskiert zu lassen. Ist zwar nur ein Workaround, aber wohl immer noch besser als in Java eine hartcodierte Ersetzung vornehmen zu müssen.
Am Zeichensatz liegt das Problem meines Wissens nicht.
Viel Glück,
Richard
Hi Richard,
Arbeite mit XERCES Parser, klappt eiegntlich alles ganz gut nur das Problem mit dem "&" und natürlich dann auch "<".
Wie meinst Du das das "&" unmasliert zu lassen, gibt doch nur die zwei Möglichkeiten:
1. &
2. &
Verwende XML nur zur Konfigurations, so tief stecke ich da net drin sorry!
Gruss Thomas
Hallo,
Wie meinst Du das das "&" unmasliert zu lassen, gibt doch nur die zwei Möglichkeiten:
- &
- &
3. &
4. &
5. &
6. &
Verwende XML nur zur Konfigurations, so tief stecke ich da net drin sorry!
OK, wie sieht der Teil deiner XML Datei mit dem SQL-Statement, wo der & enthalten ist, aus?
Grüße
Thomas
Morgen,
habe kurz was aufgeschrieben habe es ja nicht mehr im Code
<Element>
<beispiel>Fragen & Anregungen?</beispiel>
</Element>
so zum Beispiel sieht es aus, gut ist jetzt kein SQL aber vom Prinzip her ist es ja egal er erkennt das & nicht!
Und ich habe es dann anstatt dem & mit dem Zeichen & probiert und er kann es nicht wieder zurückwandeln zum &!
Hat man ganz klar beim Ausführen des SQL gesehen, er bricht das Statement bei dem & ab und bekommt dann natürlich ein Datenbankfehler!
Gruss Thomas
Hallo Thomas,
habe kurz was aufgeschrieben habe es ja nicht mehr im Code
<Element>
<beispiel>Fragen & Anregungen?</beispiel>
</Element>
Hier musst du das & maskieren durch &.
Und ich habe es dann anstatt dem & mit dem Zeichen & probiert
und er kann es nicht wieder zurückwandeln zum &!
Das sollte dein XML-Parser automatisch machen. Macht er das nicht,
ist er defekt. Welchen benutzt du?
Grüße,
CK
Hi,
also zuesrt mal will ich Dein Kommentar beantwortet Thomas J.S.:
Hast schon recht das es nicht egal ist, aber wenn er diesen String richtig einliest dann liest er es auch beim Datenbank SQL richtig ein.
Brauche das & bzw. < bei dem SQL.
Wenn er es richtig einliest und in meiner Variablen als & hat das reicht mir und das sollte er auch machen wie ich es bisher rausgehört habe.
Dann liegt es wohl an meinem Parser
jetzt zu Christian:
Habe es schon mal maskiert gehabt aber bei der zuordung zu meiner Variablen hat er es nicht mehr erkannt, also wenn ich in meinem Element <bsb>fragen & antworten </bsp> habe, istdann nachher in meiner Variablen nur noch "fragen". Er bricht also beim "&" ab.
Benutze den "xerces" Parser!
Denkst Du dann das er das nicht kann?
Gruss Thomas
Hallo,
also zuesrt mal will ich Dein Kommentar beantwortet Thomas J.S.:
Hast schon recht das es nicht egal ist, aber wenn er diesen String richtig einliest dann liest er es auch beim Datenbank SQL richtig ein.
Dann liegt es wohl an meinem Parser
jetzt zu Christian:
Habe es schon mal maskiert gehabt aber bei der zuordung zu meiner Variablen hat er es nicht mehr erkannt, also wenn ich in meinem Element <bsb>fragen & antworten </bsp> habe, istdann nachher in meiner Variablen nur noch "fragen". Er bricht also beim "&" ab.
Benutze den "xerces" Parser!
OK. gehen wir es durch (wenn eine der Punkte nicht richtig ist korrigiere bitte meine Annahme)
Ab hier ist mir nicht ganz klar was passiert:
Baust du eine DB-Verbingung durch den Parser auf, oder dein "Programm" baut sie auf?
Oder ist es ganz anderes und du aktivierst den Parser von der DB ausgehend?
Du schreibst "dann liest er es auch beim Datenbank SQL richtig ein" was liest denn die Daten die vom Parser kommen ein?
Wenn du ein selbegeschriebenes Porgramm hast, dass sowohl den Parser aktiviert als auch die DB-Verbindung herstellt, liegt es an deinem Programm. Du muss dann dafür sorgen, dass die Daten die der Parser ausgibt richtig ankommen.
Wie gesagt am Parser leigt es nicht, der verhält sich regelkonform.
Grüße
Thomas
HI Thomas,
Deine Punkte waren alle richtig.
Ich lese die XML Dateien über eine Config Klasse ein, welche sie in Variablen speichert.
Baue keine DB Verbindung über den Parser auf, die Config Datei speichert nur das Statement in einer String Variablen!
Die DB Verbindung baue ich im Programm mit dem übergebenen SQL auf.
Werde morgen mal Deinen Vorschlag ausprobieren und schauen ob er es jetzt richtig interpretiert! Hoffe mal wäre nämlich echt super!
Das ganze müsste dann ja auch mit <= gehen oder?
Danke Dir mal!
Gruss Thomas
Guten morgen Thomas!
Habe es jetzt gerade ausprobiert und es funktioniert!
Echt super!
Danke für Eure Hilfe!
Mfg
Thomas
Hallo Thomas,
Habe es jetzt gerade ausprobiert und es funktioniert!
Echt super!
Das freut uns! :-)
Grüße
Thomas
Hallo,
habe kurz was aufgeschrieben habe es ja nicht mehr im Code
<Element>
<beispiel>Fragen & Anregungen?</beispiel>
</Element>so zum Beispiel sieht es aus, gut ist jetzt kein SQL aber vom Prinzip her ist es ja egal er erkennt das & nicht!
Also vom Prinzip her ist das gar nicht egal. Ich bin sicher kein DB-Experte, aber das & hat schon in SQL eine Bedeutung, nämlich es wird für Variablen die ersetzt werden verwendet.
Also die Frage ist: brauchst du & in der Tat (für was?) und ob dein DB richtig konfiguriert ist?
Sonst ersetze das & einfach durch &.
Grüße
Thomas
Hallo thomas,
Jetzt gibt es ja in XML das Problem das "&" so nicht darstellbar ist
sondern mit "&" darstellen muss.
Wollte nun meine SQL Statements konfigurierbar machen aber erkennt
das "&" nicht als "&" beim zuweisen zu einer Variablen.
In was für einer Umgebung stehen deine SQL-Statements? Eigentlich wird
& lediglich in <![CDATA[]]> nicht ersetzt, ansonsten schon. Passiert
die Ersetzung in & trotzdem nicht, so ist dein XML-Parser defekt.
Grüße,
CK