複数選択問題のある LMS クイズから通常の xml を QTIv2.0 準拠の XML に変換する方法を探しています。Web を検索したところ、XSLT が可能なオプションであることがわかりました。5 か月前にコーディングの学習を始めたばかりで、変換の方法に関するヘルプまたはガイダンスを探しています。
XSLT を提案しましたが、受け入れられませんでした。XML ファイルを変換するドット ネット コードを書いています。
このサンプルをベースにしています。
プライベート静的文字列 XmlParamsWriterForLogin(文字列 headerId, 文字列 courseType, 文字列 scheduleID, 文字列 courseId, 文字列 nric, 文字列 出席, 文字列 結果, 文字列 スコア) { using (var sw = new StringWriter()) { using (var xw = XmlWriter.Create( sw)) { xw.WriteStartDocument();
// start dataInterface
xw.WriteStartElement("dataInterface");
// start header
xw.WriteStartElement("header");
xw.WriteElementString("id", headerId);
xw.WriteElementString("from", "LMS");
xw.WriteElementString("to", "FMS");
xw.WriteElementString("interfaceType", "LMS_FMS_STORE_CLASS_RESULT");
xw.WriteElementString("sentTime", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
xw.WriteElementString("numOfEntries", "1");
xw.WriteElementString("deliveryMode", "Synchronously");
xw.WriteElementString("concurrency", "False");
// end header
xw.WriteEndElement();
// start content
xw.WriteStartElement("content");
// start contentItem
xw.WriteStartElement("contentItem");
xw.WriteStartElement("field");
xw.WriteElementString("fieldName", "courseType");
xw.WriteElementString("fieldValue", courseType);
xw.WriteEndElement();
xw.WriteStartElement("field");
xw.WriteElementString("fieldName", "scheduleID");
xw.WriteElementString("fieldValue", scheduleID);
xw.WriteEndElement();
xw.WriteStartElement("field");
xw.WriteElementString("fieldName", "courseID");
xw.WriteElementString("fieldValue", courseId);
xw.WriteEndElement();
xw.WriteStartElement("field");
xw.WriteElementString("fieldName", "nric");
xw.WriteElementString("fieldValue", nric);
xw.WriteEndElement();
xw.WriteStartElement("field");
xw.WriteElementString("fieldName", "attendance");
xw.WriteElementString("fieldValue", attendance);
xw.WriteEndElement();
xw.WriteStartElement("field");
xw.WriteElementString("fieldName", "result");
xw.WriteElementString("fieldValue", result);
xw.WriteEndElement();
xw.WriteStartElement("field");
xw.WriteElementString("fieldName", "score");
xw.WriteElementString("fieldValue", score);
xw.WriteEndElement();
// end contentItem
xw.WriteEndElement();
// for error
xw.WriteStartElement("contentItem");
xw.WriteEndElement();
// end content
xw.WriteEndElement();
// end dataInterface
xw.WriteEndElement();
xw.WriteEndDocument();
}
return sw.ToString();
}
}
しかし、それがどのように機能するかはまだわかりません。