Tu xml tiene problemas. Con esté código de testeo y arreglando el xml, funciona sin problemas:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
function $(id){return document.getElementById(id);}
function http(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else{
try{
return new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
alert('nop');
return false;
}
}
}
function procesaAjax(){
ajax=H;
capa='pp';
var capaContenedora = document.getElementById(capa);
if(ajax.readyState==1){
capaContenedora.innerHTML="Cargando...";
}else if (ajax.readyState==4){
if(ajax.status==200){
// esto es lo nuevo
if(ajax.responseXML){
es_xml=ajax.responseXML;
//alert(es_xml.getElementsByTagName)
var javascript=es_xml.getElementsByTagName("javascript")[0].childNodes[0].data;
// Creo el nuevo JS
var etiquetaScript=document.createElement("script");
document.getElementsByTagName("head")[0].appendChild(etiquetaScript);
etiquetaScript.text=javascript;
}
// fin esto es lo nuevo
document.getElementById(capa).innerHTML=ajax.responseText;
}else if(ajax.status==404){
capaContenedora.innerHTML = "La dirección no existe";
}else{
capaContenedora.innerHTML = "Error: "+ajax.status;
}
}
}
var H;
window.onload=function(){
var url='xml.php';
H=new http();
H.open('get',url+'?'+Math.random(),true);
H.onreadystatechange=procesaAjax;
H.send(null);
}
</script>
</head>
<body>
<div id="pp">dd</div>
</body>
</html>
El xml corregido es este:
Código PHP:
<?php
$xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<javascript>alert(1)</javascript>";
$xml.='
<h1>Tecnologías del 2.0</h1>
<script>//mensajitos();</script>
<table width="100%">
<tr>
<td>
<img src="i/contenido/tecnologias_1.jpg" class="img_seccion" />
</td>
<td width="70%">
<p><b>Una combinación de estas tecnologías en una web, la definen como web 2.0</b></p>
<p>
<ul>
<li>
XHTML - Lenguaje básico por etiquetas.<br />
Toda web necesita de este lenguaje de programación para mostrar en el navegador los resultados.
</li>
<li>
CSS - Hojas de estilo<br />
Para cambiar el estilo de cualquier elemento de la web, con solo añadirle una propiedad.
</li>
<li>
PHP - Dinamización de contenidos.<br />
Es el lenguaje de programación más usado, tiene innumerables funciones para transformar una simple web, en una complejidad con unas líneas de su código.
</li>
<li>
Mysql - El tipo de base de datos más utilizado en los últimos años.<br />
Pueden acoger cualquier tipo de dato o información para ser luego mostrada en web, por ejemplo.
</li>
<li>
Javascript - Cambia estaticamente el código HTML generado de una web.<br />
Normalmente se usa para hacer validaciones de formulario, mostrar/ocultar capas...
</li>
<li>
Ajax - Servicios en segundo plano.<br />
Son peticiones y respuestas que se cargan en capas. Útimamente estÁ de moda y es muy útil para que los usuarios no deban recargar la página todo el tiempo.
</li>
</ul>
</p>
</td>
</tr>
</table>
';
$xml.="</datos>";
header("Content-type: text/xml\n\n");
echo $xml;
?>