Skip to content

Commit 29cdb4d

Browse files
author
Raphael Gachuhi
committed
adds codeblock cdata autowrap on any json to xml transform
1 parent 8260765 commit 29cdb4d

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

src/main/java/edu/cmu/oli/content/resource/builders/Json2Xml.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import edu.cmu.oli.content.AppUtils;
77
import org.apache.commons.text.StringEscapeUtils;
88
import org.jdom2.*;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
911

1012
import java.util.ArrayList;
1113
import java.util.List;
@@ -17,6 +19,8 @@
1719
*/
1820
public class Json2Xml {
1921

22+
private Logger log = LoggerFactory.getLogger(Json2Xml.class);
23+
2024
public Document jsonToXml(JsonObject json, Map<String, Namespace> namespaceMap) {
2125
Document document = new Document();
2226

@@ -118,9 +122,13 @@ private void doJsonToXml(String key, JsonElement jsonTree, Content xmlParent, Ma
118122
} else if (key.equalsIgnoreCase("#cdata")) {
119123
((Element) xmlParent).addContent(new CDATA(jsonTree.getAsString()));
120124
} else {
121-
122-
String s = StringEscapeUtils.escapeXml10(jsonTree.getAsString());
123-
((Element) xmlParent).addContent(s);
125+
// Wraps with cdata any codeblock content not already wrapped in cdata
126+
if (((Element)xmlParent).getName().equalsIgnoreCase("codeblock")) {
127+
((Element) xmlParent).addContent(new CDATA(jsonTree.getAsString()));
128+
}else {
129+
String s = StringEscapeUtils.escapeXml10(jsonTree.getAsString());
130+
((Element) xmlParent).addContent(s);
131+
}
124132

125133
}
126134
} else if (jsonTree.isJsonNull()) {

0 commit comments

Comments
 (0)