protected function to_html(ImsXmlReader $item)
 {
     $xml = $item->get_xml();
     $variables = $item->all_printedVariable();
     foreach ($variables as $var) {
         $var_xml = $var->get_xml();
         $name = '{' . $var->identifier . '}';
         $xml = str_replace($var_xml, $name, $xml);
     }
     $xml = '<?xml version="1.0" encoding="UTF-8" ?>' . $xml;
     $item = new ImsQtiReader();
     $item->load_xml($xml);
     $result = parent::to_html($item);
     return $result;
 }
 /**
  * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle.
  * Used to process data not supported by QTI and to improve performances.
  *
  * @param QtiImportSettings $data
  * @return object|null
  */
 public function build_moodle(QtiImportSettings $settings)
 {
     $data = $settings->get_data();
     $result = parent::build_moodle($settings);
     $result->instructions = $this->format_text($data->options->instructions);
     $result->showunits = $data->options->showunits;
     $result->unitsleft = $data->options->unitsleft;
     $result->unitgradingtype = $data->options->unitgradingtype;
     $result->unitpenalty = $data->options->unitpenalty;
     $result->multiplier = array();
     $result->unit = array();
     $units = $data->options->units;
     foreach ($units as $u) {
         $result->multiplier[] = $u->multiplier;
         $result->unit[] = $u->unit;
     }
     $answers = $data->options->answers;
     foreach ($answers as $a) {
         $result->answer[] = $a->answer;
         $result->fraction[] = $a->fraction;
         $result->tolerance[] = $a->tolerance;
         $result->feedback[] = $this->format_text($a->feedback);
     }
     return $result;
 }