xharx: XML Parsing Error

Ich bekomme bei meiner html- Anwendung, die ein Interface für ein selbstgeschriebenes Programm ist, das einen localhost- Server beinahaltet folgenden Fehler:

XML Parsing Error: syntax error
Location: http://127.0.0.1:49045/kosten
Line Number 1, Column 1:  kosten:1:1

Wenn ich auf der Serverseite die Antwort in <p></p> einschließe, ist der Fehler behoben, allerdings habe ich dann einen Absatz am Beginn der Zeile. Welchen Tag kann ich statt <p> benutzen, um den Stil der Ausgabe nicht zu verändern und trotzdem die Fehlermeldung zu unterdrücken? Gibt es einen besseren Trick, um XML Parsing Error zu unterdrücken?

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8


<!DOCTYPE html>
<html>
<head>
	<style> 
		table { border: 2px solid black; } 
		tr { border: 2px solid black; } 
		td { 
			border: 1px solid black; 
			vertical-align: top;
		} 
	</style>
	<style type="text/css">
		body { background-color: #d8d8a8; }
	</style>
	<script type="text/javascript">
		//https://de.wikibooks.org/wiki/Websiteentwicklung:_AJAX:_Erstes_Programm
		function getnews(idname){
			if (window.XMLHttpRequest){
				var myAjax = new XMLHttpRequest();
			}else{
				//Dieser Code wird als Fallback für den IE5 und IE6 benötigt, da diese die obrige Schreibweise nicht unterstützen.
				var myAjax = new ActiveXObject("Microsoft.XMLHTTP");
			}

			myAjax.onreadystatechange=function(){
				if (myAjax.readyState==4 && myAjax.status==200){
					document.getElementById(idname).innerHTML=myAjax.responseText;
				}
			};
			myAjax.open("GET", idname, true);
			myAjax.send();
		}
		//Benutzung: setInterval(getnews, interval, name des id- Feldes im body) benutzen, um regelmäßig im Interval abzudaten
		//setInterval(getnews, 1000, "refreshdata");
		//setInterval(getnews, 5000, "signaturen");
		//setInterval(getnews, 1000, "getarenapic");
		//getnews(name des Feldes) benutzen, um Inhalt einmalig zu laden.
		//im server GET- Nachricht abfangen und Inhalt mittels send zurücksenden
		getnews("prefs");
		getnews("kosten");
		getnews("mutabor");
	</script>
</head>
<body>
	<h1>Welcome to EvoProgs!</h1>
	<p>Bad times for organisms on this planet. The age of programisms is about to come.<p/>
	<table>
		<tr>
			<td>
				<a href="ende">Progsramm beenden</a><br>
				<a href="arenazeigen">Arena zeigen</a><br>
				<a href="#">max</a><br>
				<a href="langsam">langsam</a><br>
			</td>
			<td id="prefs">prefs</td>
			<td id="kosten">kosten</td>
			<td id="mutabor">mutabor</td>
			<td rowspan="2" id="refreshdata">Daten werden vorbereitet...</>
			</td>
		</tr>
		<tr>
			<!-- td id="getarenapic" colspan =4></td -->
			<td colspan = 4> <img src="bild1.bmp?10" alt="neu">
			<!--td id="getarenapic" colspan =4>
				<img src="bild1.bmp" alt="Grafik kann nicht angezeigt werden" / -->
			<!--td colspan =4>
				<img src="bild1.bmp" alt="Grafik kann nicht angezeigt werden" / -->
			</td>
		</tr>
		<tr>
			<td>
				<td colspan="3" id="signaturen">signaturen</td>
			</td>
			<td>
				bl6
			</td>
		</tr>
	</table>

	<!-- img src="/home/xharx/Dropbox/Programmieren/evsim/evoprogs1/PNG_transparency_demonstration_1.png" alt="bla" /-->
</body>
</html>

  1. Moin xharx,

    Ich bekomme bei meiner html- Anwendung, die ein Interface für ein selbstgeschriebenes Programm ist, das einen localhost- Server beinahaltet folgenden Fehler:

    XML Parsing Error: syntax error
    Location: http://127.0.0.1:49045/kosten
    Line Number 1, Column 1:  kosten:1:1
    

    Wenn ich auf der Serverseite die Antwort in <p></p> einschließe, ist der Fehler behoben, allerdings habe ich dann einen Absatz am Beginn der Zeile.

    Wie sieht denn dein XML aus? Kann es sein, dass die Daten ohne das umschließende p-Element keine eindeutige Wurzel haben?

    Viele Grüße
    Robert

    P.S.: Der HTTP-Header gehört nicht zum HTML-Dokument.

    HTTP/1.1 200 OK
    Content-Type: text/html; charset=utf-8
    
    
    <!DOCTYPE html>

    P.P.S.: Wieso hast du zwei style-Elemente?

    	<style> 
    		table { border: 2px solid black; } 
    		tr { border: 2px solid black; } 
    		td { 
    			border: 1px solid black; 
    			vertical-align: top;
    		} 
    	</style>
    	<style type="text/css">
    		body { background-color: #d8d8a8; }
    	</style>
    

    P.P.P.S.: Wo gibt es denn noch MSIE 5 oder 6?

    			if (window.XMLHttpRequest){
    				var myAjax = new XMLHttpRequest();
    			}else{
    				//Dieser Code wird als Fallback für den IE5 und IE6 benötigt, da diese die obrige Schreibweise nicht unterstützen.
    				var myAjax = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    
  2. Hallo xharx.

    Wenn ich auf der Serverseite die Antwort in <p></p> einschließe, ist der Fehler behoben, allerdings habe ich dann einen Absatz am Beginn der Zeile. Welchen Tag kann ich statt <p> benutzen, um den Stil der Ausgabe nicht zu verändern und trotzdem die Fehlermeldung zu unterdrücken?

    Wenn du den Abstand vor dem <p> meinst, kannst du den ausschalten, indem du mittels CSS dessen Außenabstand bestimmst. Ob es auch mit Elementen funktioniert, die keinen Umbruch erzeugen – etwa einem geschmacksneutralen <span> –, kannst du ja einfach ausprobieren.

    Gibt es einen besseren Trick, um XML Parsing Error zu unterdrücken?

    Wohlgeformtes und valides HTML? Und wer oder was parst denn das XML? Dein Javascript?

    MfG, at

  3. Danke für alle Tips.

  4. Hi,

    XML Parsing Error: syntax error
    Location: http://127.0.0.1:49045/kosten
    Line Number 1, Column 1:  kosten:1:1
    

    Dann zeig doch mal das XML, um das es geht.

    Wenn ich auf der Serverseite die Antwort in <p></p> einschließe, ist der Fehler behoben

    Also ist das XML vermutlich kaputt, es fehlt wahrscheinlich das root-Element, das den Rest umschließt.

    allerdings habe ich dann einen Absatz am Beginn der Zeile. Welchen Tag kann ich statt <p> benutzen, um den Stil der Ausgabe nicht zu verändern und trotzdem die Fehlermeldung zu unterdrücken? Gibt es einen besseren Trick, um XML Parsing Error zu unterdrücken?

    1. korrektes XML verwenden
    2. vor dem Einfügen ins HTML das <p> und </p> wieder entfernen?
    3. das p-Element entsprechend Deinen Wünschen stylen?
    			<td rowspan="2" id="refreshdata">Daten werden vorbereitet...</>
    

    Das schließende Tag ist kaputt.

    cu,
    Andreas a/k/a MudGuard