Skip to content

Commit 97cf10d

Browse files
authored
Merge pull request #80 from Simon-Initiative/json-to-xml-issue
fixed parsing issue
2 parents 065db8c + db3adb8 commit 97cf10d

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

src/main/java/edu/cmu/oli/content/AppUtils.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,22 @@ public static <T> T toClassObject(javax.json.JsonValue jsonValue, Class<T> class
6666
}
6767

6868
public static String escapeAmpersand(String data) {
69-
String val = data.replaceAll("\\n", "``!");
69+
String val = data.replaceAll("\\R", "``!");
7070
String pattern = "(?s)(&lt;|<)!\\[CDATA\\[(.*?)\\]\\](&gt;|>)";
7171
Matcher m = Pattern.compile(pattern).matcher(val);
7272
List<String> cdataList = new ArrayList<>();
7373
while (m.find()){
74-
cdataList.add(m.group());
74+
String cdata = m.group();
75+
cdata = cdata.replaceAll("\\$", "!`!");
76+
cdataList.add(cdata);
7577
}
7678
val = val.replaceAll(pattern, "~~!");
79+
val = val.replaceAll("\\$", "!`!");
7780
val = val.replaceAll("&(?!.{2,4};)", "&amp;");
7881
for(String cd : cdataList){
7982
val = val.replaceFirst("~~!", cd);
8083
}
84+
val = val.replaceAll("!`!", "\\$");
8185
val = val.replaceAll("``!", "\n");
8286
return val;
8387
}

0 commit comments

Comments
 (0)