Estoy creando una banco de preguntas en xml, para ello tengo un formulario en html que llama a un php el cual se encarga de generar un XML.
Hasta ahí todo bien, el problema lo encuentro en el momento de buscar la raíz para añadirle un nodo. Fatal error: Call to undefined method stdClass::getElementById()
He estado buscando y la verdad es que ya no sé que hacer..
El archivo xml resultante debería tener esta pinta:
<?xml version="1.0"?>
<questions id='uno'>
<questio>
<pregunta>A que huelen las nubes?</pregunta>
<resposta>falsa</resposta>
</questio>
<questio>
<pregunta>A que saben las flores?</pregunta>
<resposta>falsa</resposta>
</questio>
</questions>
Código PHP:
<?php
$doc = new DOMDocument();
$doc->validateOnParse = true;
$doc->Load( '../banc_preguntes.xml' );
if( $doc=false) {
$doc = new DOMDocument("1.0");
}
$doc->formatOutput = true;
$r= $doc->getElementById('questions');
if( $r==null )
{
$r = $doc->createElement( "questions" );
$r->setIdAttribute("xml:id", true);
$doc->appendChild( $r );
}
//Insercion de los datos de la pregunta
$b = $doc->createElement( "questio" );
$pregunta = $doc->createElement( "pregunta" );
$pregunta->appendChild( $doc->createTextNode( $_POST['pregunta'] ));
$b->appendChild( $pregunta );
$answer = $doc->createElement( "resposta" );
$answer->appendChild( $doc->createTextNode( $_POST['resposta'] ));
$b->appendChild( $answer );
$doc->appendChild( $b );
$doc->save( '../banc_preguntes.xml' ); //guardo a XML
?>