Ante todo buenas, vengo a darme una vuelta por aqui pues tengo un problema que quisiera compartir a ver si podrían darme una mano. Tengo un documento xml externo, un php que lo carga y debe extraer solamente un nodo pero al parecer estoy cometiendo un error y no se como resolverlo.
Este es el xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE WebSacoDoc SYSTEM "base_xml_saco.dtd">
<WebSacoDoc>
<contexto id="01">
<titulo>quienes somos</titulo>
<texto>Aqui el txto de quienes somos</texto>
<foto>aqui la direccion de la foto o imagen</foto>
</contexto>
<contexto id="02">
<titulo>mision / vision</titulo>
<texto>Aqui el texto de mision / vision</texto>
<foto>aqui la direccion de la foto o imagen</foto>
</contexto>
<contexto id="03">
<titulo>trayectoria</titulo>
<texto>Aqui el txto de trayectoria</texto>
<foto>aqui la direccion de la foto o imagen</foto>
</contexto>
<contexto id="04">
<titulo>Servicios</titulo>
<texto>Aqui el txto de servicios</texto>
<foto>aqui la direccion de la foto o imagen</foto>
</contexto>
</WebSacoDoc>
este es el php
<?php
/*header('Content-Type:Text/xml');*/
$car = new DOMDocument();
$car->load('inicio.xml');
$idrecogido = 02;
foreach ($car->getElementsByTagName('contexto') as $nodo){
//capturamos el nodo contexto deseado
if ($idrecogido == $nodo->getAttribute(id)){
$muestra = $nodo;
}
}
$imp = new DOMImplementation; //creo la implementacion respectiva
$dtd = $imp->createDocumentType('WebSacoDoc', '', 'base_xml_saco.dtd');
$dom = $imp->createDocument('', '', $dtd); //creo el documento respectivamente
$dom->encoding = 'UTF-8';
$dom->standalone = false;
$element = $dom->createElement('WebSacoDoc'); //creo el elemento WebSacoDoc
$dom->appendChild($element); //lo adjunto al xml
$nivel = $dom->documentElement; //entro al nivel de WebSacoDoc
$captor = $nivel->getElementsByTagName('WebSacoDoc');
$nivel->appendChild($muestra); //intento adjuntar el nodo con sus child en el elemento WebSacoDoc (linea de falla)
echo $dom->saveXML;
y este es el error que me bota
Fatal error: Uncaught exception 'DOMException' with message 'Wrong Document Error' in C:\AppServ\www\inicio\XMLemb\inicio2.php:26 Stack trace: #0 C:\AppServ\www\inicio\XMLemb\inicio2.php(26): DOMNode->appendChild(Object(DOMElement)) #1 {main} thrown in C:\AppServ\www\inicio\XMLemb\inicio2.php on line 26
Al parecer no puede adjuntarlo correctamente porque lo recibe como un objeto y segun la documentcaion de php lo que debe recibir es un nodo. Yo crei que lo que tenia en $muestra era el nodo contexto 02 y este junto con sus child se juntarian al nuevo documento. Como podría hacer para realizar correctamente esta operación.
Gracias de antemano