Добрый день!
Уважаемые разработчики, возможно ли перенести задания из новой версии Айрен (0.2020.08.1) в старую?
Экспорт заданий из новой версии Айрен (0.2020.08.1) в старую
Re: Экспорт заданий из новой версии Айрен (0.2020.08.1) в старую
Нет, такое не предусмотрено, можно переносить только из старой в новую.
-
Андрей
Re: Экспорт заданий из новой версии Айрен (0.2020.08.1) в старую
"Подумаешь, бином Ньютона" (с)
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Конвертер XML (.itx → .it2)</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
textarea { width: 100%; height: 200px; margin-bottom: 10px; }
button { margin-right: 10px; padding: 8px 12px; }
</style>
</head>
<body>
<h2>Конвертер XML (.itx → .it2)</h2>
<label for="inputXml">Вставьте XML-код из файла .itx:</label>
<textarea id="inputXml" placeholder="Вставьте сюда код XML для .itx"></textarea>
<label for="outputXml">Сконвертированный XML-код для файла .it2:</label>
<textarea id="outputXml" readonly placeholder="Здесь появится результат"></textarea>
<div>
<button onclick="convertXml()">Конвертировать</button>
<button onclick="copyOutput()">Копировать код .xml-файла для .it2</button>
<button onclick="resetFields()">Сброс</button>
</div>
<script>
function convertXml() {
let input = document.getElementById("inputXml").value;
let output = input;
// Заменяем корневой тег <irenTest>
output = output.replace(
/<irenTest[^>]*version="6"[^>]*>/,
'<irenTest version="2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://irenproject.ru/schema/it2.xsd">'
);
// Добавляем строку со стилем после декларации XML
output = output.replace(
/(<\?xml[^>]*\?>)/,
'$1\n<?xml-stylesheet type="text/xsl" href="styles/it2html.xsl"?>'
);
// Заменяем tag="N" на id="N"
output = output.replace(/tag="(\d+)"/g, 'id="$1"');
// Заменяем <testInfo lastGeneratedTag="N"/> на <testInfo nextQuestionId="N+1"/>
output = output.replace(
/<testInfo lastGeneratedTag="(\d+)"\/>/,
(match, p1) => `<testInfo nextQuestionId="${parseInt(p1) + 1}"/>`
);
document.getElementById("outputXml").value = output;
}
function copyOutput() {
const outputField = document.getElementById("outputXml");
outputField.select();
document.execCommand("copy");
alert("Код скопирован в буфер обмена!");
}
function resetFields() {
document.getElementById("inputXml").value = "";
document.getElementById("outputXml").value = "";
}
</script>
</body>
</html>
Открываете Блокнот. Копируете туда это код. Называете будущий файл, к примеру, "ковертер XTML из itx в it2.html" и обязательно ставите "все файлы". Получаете html-файл, открываемый в браузере. Файлы и .itx и .it2 на самом деле zip-архивы, в которых есть xml-файл. Его содержание и нужно конвертировать, что данный конвертер и делает - в любую сторону. В тотал коммандер, например, делаете копию файла .itx и файла .it2, но при копировании ставите расширение zip. Получаете две папки архива. Открываете, ищете там xml-файл, меняете его содержание (через F4 Правка) и сохраняете. Затем копируете архивную папку, меняя расширение zip на, соответственно, .itx или .it2. В реальности нужно, когда часть тестов курса создана старым конвертером, а часть новым. А вы хотите, чтобы всё было в старом формате (у меня, кстати, он больше доверия вызывает). Ковертация .it2 в .itx, лишена смысла, потому что новый редактор тестов открывает прежнюю версию. Но пусть будет, мало ли. Пользуйтесь, кому надо. Авторские права за Жмакиным Андреем Игоревичем, Гродненский государственный медицинский университет, Беларусь; но пользоваться можно бесплатно.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Конвертер XML (.itx → .it2)</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
textarea { width: 100%; height: 200px; margin-bottom: 10px; }
button { margin-right: 10px; padding: 8px 12px; }
</style>
</head>
<body>
<h2>Конвертер XML (.itx → .it2)</h2>
<label for="inputXml">Вставьте XML-код из файла .itx:</label>
<textarea id="inputXml" placeholder="Вставьте сюда код XML для .itx"></textarea>
<label for="outputXml">Сконвертированный XML-код для файла .it2:</label>
<textarea id="outputXml" readonly placeholder="Здесь появится результат"></textarea>
<div>
<button onclick="convertXml()">Конвертировать</button>
<button onclick="copyOutput()">Копировать код .xml-файла для .it2</button>
<button onclick="resetFields()">Сброс</button>
</div>
<script>
function convertXml() {
let input = document.getElementById("inputXml").value;
let output = input;
// Заменяем корневой тег <irenTest>
output = output.replace(
/<irenTest[^>]*version="6"[^>]*>/,
'<irenTest version="2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://irenproject.ru/schema/it2.xsd">'
);
// Добавляем строку со стилем после декларации XML
output = output.replace(
/(<\?xml[^>]*\?>)/,
'$1\n<?xml-stylesheet type="text/xsl" href="styles/it2html.xsl"?>'
);
// Заменяем tag="N" на id="N"
output = output.replace(/tag="(\d+)"/g, 'id="$1"');
// Заменяем <testInfo lastGeneratedTag="N"/> на <testInfo nextQuestionId="N+1"/>
output = output.replace(
/<testInfo lastGeneratedTag="(\d+)"\/>/,
(match, p1) => `<testInfo nextQuestionId="${parseInt(p1) + 1}"/>`
);
document.getElementById("outputXml").value = output;
}
function copyOutput() {
const outputField = document.getElementById("outputXml");
outputField.select();
document.execCommand("copy");
alert("Код скопирован в буфер обмена!");
}
function resetFields() {
document.getElementById("inputXml").value = "";
document.getElementById("outputXml").value = "";
}
</script>
</body>
</html>
Открываете Блокнот. Копируете туда это код. Называете будущий файл, к примеру, "ковертер XTML из itx в it2.html" и обязательно ставите "все файлы". Получаете html-файл, открываемый в браузере. Файлы и .itx и .it2 на самом деле zip-архивы, в которых есть xml-файл. Его содержание и нужно конвертировать, что данный конвертер и делает - в любую сторону. В тотал коммандер, например, делаете копию файла .itx и файла .it2, но при копировании ставите расширение zip. Получаете две папки архива. Открываете, ищете там xml-файл, меняете его содержание (через F4 Правка) и сохраняете. Затем копируете архивную папку, меняя расширение zip на, соответственно, .itx или .it2. В реальности нужно, когда часть тестов курса создана старым конвертером, а часть новым. А вы хотите, чтобы всё было в старом формате (у меня, кстати, он больше доверия вызывает). Ковертация .it2 в .itx, лишена смысла, потому что новый редактор тестов открывает прежнюю версию. Но пусть будет, мало ли. Пользуйтесь, кому надо. Авторские права за Жмакиным Андреем Игоревичем, Гродненский государственный медицинский университет, Беларусь; но пользоваться можно бесплатно.