function getImportArrFromXml($filename) { $res = array(); require_once _base_ . '/lib/lib.domxml.php'; $xml_doc = new DoceboDOMDocument(); if (!$xml_doc) { return FALSE; } if ($xml_doc->load($filename)) { $xpath = new DoceboDOMXPath($xml_doc); $cat_info = array(); $category_node = $xpath->query('/FAQCATEGORY'); for ($i = 0; $i < $category_node->length; $i++) { $item = $category_node->item($i); $elem = $xpath->query('TITLE/text()', $item); $elemNode = $elem->item(0); $cat_info["title"] = urldecode($elemNode->textContent); $item = $category_node->item($i); $elem = $xpath->query('DESCRIPTION/text()', $item); $elemNode = $elem->item(0); $cat_info["description"] = urldecode($elemNode->textContent); $cat_items = $xpath->query('CATEGORYITEMS/faq', $item); $faq_list = array(); $arr_id = 0; for ($iFaq = 0; $iFaq < $cat_items->length; $iFaq++) { $faq = $cat_items->item($iFaq); $elem = $xpath->query('title/text()', $faq); $elemNode = $elem->item(0); $faq_list[$arr_id]["title"] = urldecode($elemNode->textContent); $faq = $cat_items->item($iFaq); $elem = $xpath->query('question/text()', $faq); $elemNode = $elem->item(0); $faq_list[$arr_id]["question"] = urldecode($elemNode->textContent); $faq = $cat_items->item($iFaq); $elem = $xpath->query('keyword/text()', $faq); $elemNode = $elem->item(0); $faq_list[$arr_id]["keyword"] = urldecode($elemNode->textContent); $faq = $cat_items->item($iFaq); $elem = $xpath->query('answer/text()', $faq); $elemNode = $elem->item(0); $faq_list[$arr_id]["answer"] = urldecode($elemNode->textContent); $arr_id++; } } } else { return FALSE; } $res["cat_info"] = $cat_info; $res["faq_list"] = $faq_list; return $res; }
function importQuestionFromXml($filename) { require_once _base_ . '/lib/lib.domxml.php'; // initialize DOM class $xml_doc = new DoceboDOMDocument(); if (!$xml_doc) { return false; } if (!$xml_doc->load($filename)) { return false; } if (!($xpath = new DoceboDOMXPath($xml_doc))) { return false; } // get all the question in the document $NodeList_question = $xpath->query('/question_collection/question'); $seq = $this->getMaxSequence() + 1; $page = $this->_getPageNumber(); for ($i = 0; $i < $NodeList_question->length; $i++) { $quest = $NodeList_question->item($i); // read text quest $xre_quest_text = $xpath->query('prompt/text()', $quest); $node_quest_text = $xre_quest_text->item(0); //$node_quest_text->textContent // contains the question //insert the new question $ins_query = "\r\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_testquest \r\n\t\t\t( idTest, idCategory, type_quest, title_quest, difficult, time_assigned, sequence, page ) VALUES \r\n\t\t\t( \t'" . $this->id_test . "', \r\n\t\t\t\t'0', \r\n\t\t\t\t'choice', \r\n\t\t\t\t'" . addslashes($node_quest_text->textContent) . "',\r\n\t\t\t\t'3', \r\n\t\t\t\t'0', \r\n\t\t\t\t'" . ($seq + $i) . "', \r\n\t\t\t\t'" . $page . "' ) "; if (!sql_query($ins_query)) { return false; } list($id_quest) = sql_fetch_row(sql_query("SELECT LAST_INSERT_ID()")); if (!$id_quest) { return false; } $re = true; // find all the answer $NodeList_answer = $xpath->query('answers/answer', $quest); for ($j = 0; $j < $NodeList_answer->length; $j++) { $answer = $NodeList_answer->item($j); $is_correct = $answer->getAttribute('is_correct'); $score_if_correct = $answer->getAttribute('score_if_correct'); $score_if_error = $answer->getAttribute('score_if_error'); //$answer->textContent $ins_answer_query = "\r\n\t\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_testquestanswer \r\n\t\t\t\t( idQuest, is_correct, answer, comment, score_correct, score_incorrect ) VALUES\r\n\t\t\t\t( \t'" . $id_quest . "', \r\n\t\t\t\t\t'" . ($is_correct == 'true' ? 1 : 0) . "', \r\n\t\t\t\t\t'" . addslashes($answer->textContent) . "', \r\n\t\t\t\t\t'', \r\n\t\t\t\t\t'" . (double) $score_if_correct . "', \r\n\t\t\t\t\t'" . (double) $score_if_error . "') "; if (!sql_query($ins_answer_query)) { $re = false; } } echo '-------------------------------<br/><br/>'; } return $re; }