Skip to content
Snippets Groups Projects
Commit ca4f1da9 authored by srosse's avatar srosse
Browse files

OO-2573: better clean up p namespaces, replace <p/> with <p></p>

parent 71caa6f2
No related branches found
No related tags found
No related merge requests found
...@@ -406,6 +406,7 @@ public class OpenXMLDocument { ...@@ -406,6 +406,7 @@ public class OpenXMLDocument {
public void appendHtmlText(String html, Spacing spacing) { public void appendHtmlText(String html, Spacing spacing) {
if(!StringHelper.containsNonWhitespace(html)) return; if(!StringHelper.containsNonWhitespace(html)) return;
try { try {
html = cleanUpHTML(html);
SAXParser parser = new SAXParser(); SAXParser parser = new SAXParser();
parser.setContentHandler(new HTMLToOpenXMLHandler(this, spacing)); parser.setContentHandler(new HTMLToOpenXMLHandler(this, spacing));
parser.parse(new InputSource(new StringReader(html))); parser.parse(new InputSource(new StringReader(html)));
...@@ -419,6 +420,7 @@ public class OpenXMLDocument { ...@@ -419,6 +420,7 @@ public class OpenXMLDocument {
public void appendHtmlText(String html, boolean newParagraph) { public void appendHtmlText(String html, boolean newParagraph) {
if(!StringHelper.containsNonWhitespace(html)) return; if(!StringHelper.containsNonWhitespace(html)) return;
try { try {
html = cleanUpHTML(html);
SAXParser parser = new SAXParser(); SAXParser parser = new SAXParser();
Element paragraphEl = getParagraphToAppendTo(newParagraph); Element paragraphEl = getParagraphToAppendTo(newParagraph);
parser.setContentHandler(new HTMLToOpenXMLHandler(this, paragraphEl)); parser.setContentHandler(new HTMLToOpenXMLHandler(this, paragraphEl));
...@@ -433,6 +435,7 @@ public class OpenXMLDocument { ...@@ -433,6 +435,7 @@ public class OpenXMLDocument {
public void appendHtmlText(String html, boolean newParagraph, HTMLToOpenXMLHandler handler) { public void appendHtmlText(String html, boolean newParagraph, HTMLToOpenXMLHandler handler) {
if(!StringHelper.containsNonWhitespace(html)) return; if(!StringHelper.containsNonWhitespace(html)) return;
try { try {
html = cleanUpHTML(html);
SAXParser parser = new SAXParser(); SAXParser parser = new SAXParser();
Element paragraphEl = getParagraphToAppendTo(newParagraph); Element paragraphEl = getParagraphToAppendTo(newParagraph);
handler.setInitialParagraph(paragraphEl); handler.setInitialParagraph(paragraphEl);
...@@ -445,6 +448,16 @@ public class OpenXMLDocument { ...@@ -445,6 +448,16 @@ public class OpenXMLDocument {
} }
} }
/**
* The Neko HTMl parser has some issues with <p/>.
*
* @param html The HTML to clean up
* @return HTML code which Neko understands
*/
private String cleanUpHTML(String html) {
return html.replace("<p/>", "<p></p>");
}
public Node appendTable(Integer... width) { public Node appendTable(Integer... width) {
Element tableEl = createTable(width); Element tableEl = createTable(width);
return getCursor().appendChild(tableEl); return getCursor().appendChild(tableEl);
......
...@@ -101,8 +101,11 @@ public class AssessmentHtmlBuilder { ...@@ -101,8 +101,11 @@ public class AssessmentHtmlBuilder {
private String cleanUpNamespaces(StringOutput sb) { private String cleanUpNamespaces(StringOutput sb) {
String content = sb.toString(); String content = sb.toString();
content = content.replace(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", "");
content = content.replace("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", ""); content = content.replace("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", "");
content = content.replace("\n xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\"", "");
content = content.replace("xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\"", ""); content = content.replace("xmlns=\"http://www.imsglobal.org/xsd/imsqti_v2p1\"", "");
content = content.replace("\n xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p1 http://www.imsglobal.org/xsd/imsqti_v2p1.xsd\"", "");
content = content.replace("xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p1 http://www.imsglobal.org/xsd/imsqti_v2p1.xsd\"", ""); content = content.replace("xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imsqti_v2p1 http://www.imsglobal.org/xsd/imsqti_v2p1.xsd\"", "");
return content.trim(); return content.trim();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment