kostenloser Webspace werbefrei: lima-city


AJAX: Webseite mit XML weitergeben

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    nerdinator

    Kostenloser Webspace von nerdinator, auf Homepage erstellen warten

    nerdinator hat kostenlosen Webspace.

    Servus,

    ich möchte eine komplette Webseite in einen XML-Tag packen, die XML-Seite per Ajax nachladen und die Webseite dann ausgeben.

    Erstmal meine XML-Seite (alias load.php):
    <?php
    	header("Content-Type: text/xml");
    	echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
    ?>
    <seite>
        <english>car</english>
        <titel> Auto </titel>
        <inhalt> <?php include('beispielsweise.php'); ?> </inhalt>
     </seite>

    Mein JavaScript-Code:
    var req = null;
                  
    function handleResponse(){            
    	switch(req.readyState) {
    		case 4:
    			if(req.status!=200) {
    				alert("Fehler:"+req.status); 
    			}else{    
    				titelFeld = document.getElementById("titel");
    				inhaltFeld = document.getElementById("inhalt");
    				
    				xml = req.responseXML;
    				titel = xml.getElementsByTagName("titel")[0];
    				inhalt = xml.getElementsByTagName("inhalt")[0];
    				
    				titel.innerHTML = german_resp.firstChild.nodeValue;
    				inhalt.innerHTML = french_resp.firstChild.nodeValue;
    			}
    		break;
    
    		default:
    			return false;
    		break;     
    	}
    }
                
    function getPage(){         
    	try{
    		req = new XMLHttpRequest();
    	}
    	catch (e){
    		try{
    			req = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e){
    			try{
    				req = new ActiveXObject("Microsoft.XMLHTTP");
    			} 
    			catch (failed){
    				req = null;
    			}
    		}  
    	}
    
    	if (req == null)
    		  alert("Error creating request object!");
    	  
    	var url = 'load.php';
    
    	req.open("GET", url, true);
    
    	req.onreadystatechange = handleTranslation;
    
    	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	req.send(null);
    }

    Nun ist offenbar das Problem, dass er reinen "Klartext" ohne weiteres aus dem <inhalt>-Tag lesen würde, bei einer Webseite sich aber probleme ergeben.

    Hat jemand eine Idee, wie man das umgehen kann?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    wie man hier:http://de.selfhtml.org/xml/regeln/zeichen.htm nachlesen kann, haben bestimmte Zeichen in XML eine Sonderfunktion. Ich vermute mal, dass diese Zeichen die XML Seite aus der Fassung bringen. Insbesondere der Quellcode einer eingebundenen Seite enthält ja Tags und somit auch "<" und ">". Als Abhilfe könnte die Funktion htmlspecialchars dienen, wie man hier:http://php.net/manual/en/function.htmlspecialchars.php nachlesen kann. Die Sonderzeichen würden ersetzt.
    Ich habe einen Test mit
    <inhalt> <?php echo htmlspecialchars('<h2>Hallo</h2>'); ?> </inhalt>
    und
    <inhalt> <h2>Hallo</h2> </inhalt>
    gemacht. Der erste Ausdruck funktioniert, der zweite nicht.
    Ich hoffe das bringt dich weiter.

    Gruß
    Manni
  4. Autor dieses Themas

    nerdinator

    Kostenloser Webspace von nerdinator, auf Homepage erstellen warten

    nerdinator hat kostenlosen Webspace.

    Richtige Antwort, war mir nun allerdings bereits bekannt ;)

    Naja, ich habe mich nun entschieden doch wieder auf JSON umzusteigen, da das ganze besser mit JavaScript zusammen arbeitet. Aber danke für die mühe - und dein Ansatz war wie bereits gesagt vollkommen richtig.

    kann also geschlossen werden ;)
  5. @bandi999
    ... Als Abhilfe könnte die Funktion htmlspecialchars dienen ...

    ich würde eher sagen das hier.

    @nerdinator das geht beim parser vorbei!
    <?php
    	header("Content-Type: text/xml");
    	echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
    ?>
    <seite>
        <english>car</english>
        <titel> Auto </titel>
        <inhalt><![CDATA[ <?php include('beispielsweise.php'); ?> ]]></inhalt>
    </seite>


    Beitrag zuletzt geändert: 19.1.2010 8:25:17 von czibere
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!