Index: lams_common/src/java/org/lamsfoundation/lams/questions/QuestionExporter.java =================================================================== diff -u -rd0b6f213cba1026b0c9fdbdaa5dd44a49eddd3aa -rba28cb911ad77140c95094d89dd1153ee5eee2a6 --- lams_common/src/java/org/lamsfoundation/lams/questions/QuestionExporter.java (.../QuestionExporter.java) (revision d0b6f213cba1026b0c9fdbdaa5dd44a49eddd3aa) +++ lams_common/src/java/org/lamsfoundation/lams/questions/QuestionExporter.java (.../QuestionExporter.java) (revision ba28cb911ad77140c95094d89dd1153ee5eee2a6) @@ -20,7 +20,6 @@ * **************************************************************** */ - package org.lamsfoundation.lams.questions; import java.io.File; @@ -677,16 +676,18 @@ private void appendMaterialElements(Element materialElem, String text) { String[] answerParts = parseImages(text); for (String answerPart : answerParts) { - if (answerPart.startsWith(QuestionExporter.IMAGE_MARKER)) { - String imageName = answerPart.substring(QuestionExporter.IMAGE_MARKER.length()); - String imageType = "image/" + FileUtil.getFileExtension(imageName); - Element matimageElem = (Element) materialElem.appendChild(doc.createElement("matimage")); - matimageElem.setAttribute("imagtype", imageType); - matimageElem.setAttribute("uri", imageName); - } else { - Element mattextElem = (Element) materialElem.appendChild(doc.createElement("mattext")); - mattextElem.setAttribute("texttype", "text/html"); - mattextElem.appendChild(doc.createCDATASection(answerPart)); + if (StringUtils.isNotBlank(answerPart)) { + if (answerPart.startsWith(QuestionExporter.IMAGE_MARKER)) { + String imageName = answerPart.substring(QuestionExporter.IMAGE_MARKER.length()); + String imageType = "image/" + FileUtil.getFileExtension(imageName); + Element matimageElem = (Element) materialElem.appendChild(doc.createElement("matimage")); + matimageElem.setAttribute("imagtype", imageType); + matimageElem.setAttribute("uri", imageName); + } else { + Element mattextElem = (Element) materialElem.appendChild(doc.createElement("mattext")); + mattextElem.setAttribute("texttype", "text/html"); + mattextElem.appendChild(doc.createCDATASection(answerPart)); + } } } } Index: lams_common/src/java/org/lamsfoundation/lams/questions/QuestionParser.java =================================================================== diff -u -rd0b6f213cba1026b0c9fdbdaa5dd44a49eddd3aa -rba28cb911ad77140c95094d89dd1153ee5eee2a6 --- lams_common/src/java/org/lamsfoundation/lams/questions/QuestionParser.java (.../QuestionParser.java) (revision d0b6f213cba1026b0c9fdbdaa5dd44a49eddd3aa) +++ lams_common/src/java/org/lamsfoundation/lams/questions/QuestionParser.java (.../QuestionParser.java) (revision ba28cb911ad77140c95094d89dd1153ee5eee2a6) @@ -567,7 +567,7 @@ .getLength(); questionElementIndex++) { Node questionElement = questionElements.item(questionElementIndex); String elementName = questionElement.getNodeName(); - if ("mattext".equalsIgnoreCase(elementName)) { + if ("mattext".equalsIgnoreCase(elementName) && questionElement.getChildNodes().getLength() > 0) { // it is a HTML part String questionTextPart = ((CDATASection) questionElement.getChildNodes().item(0)).getData(); result.append(questionTextPart);