mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
just split ]]> into adjacent CDATA's
This commit is contained in:
@@ -33,12 +33,11 @@ public class XmlStringUtil {
|
||||
@NotNull
|
||||
public static String wrapInCDATA(@NotNull String str) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int cur = 0, next, len = str.length();
|
||||
int cur = 0, len = str.length();
|
||||
while (cur < len) {
|
||||
next = StringUtil.indexOf(str, CDATA_END, cur);
|
||||
sb.append(CDATA_START).append(str.subSequence(cur, next = next < 0 ? len : next)).append(CDATA_END);
|
||||
if (next < len) sb.append(escapeString(CDATA_END));
|
||||
cur = next + CDATA_END.length();
|
||||
int next = StringUtil.indexOf(str, CDATA_END, cur);
|
||||
sb.append(CDATA_START).append(str.subSequence(cur, next = next < 0 ? len : next + 1)).append(CDATA_END);
|
||||
cur = next;
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@@ -367,8 +367,8 @@ public class StringUtilTest extends TestCase {
|
||||
|
||||
public void testXmlWrapInCDATA() {
|
||||
assertEquals("<![CDATA[abcd]]>", XmlStringUtil.wrapInCDATA("abcd"));
|
||||
assertEquals("<![CDATA[abcd]]>]]>", XmlStringUtil.wrapInCDATA("abcd]]>"));
|
||||
assertEquals("<![CDATA[abcd]]>]]><![CDATA[efgh]]>", XmlStringUtil.wrapInCDATA("abcd]]>efgh"));
|
||||
assertEquals("<![CDATA[123<![CDATA[wow<&>]]>]]><![CDATA[]]>]]><![CDATA[<![CDATA[123]]>", XmlStringUtil.wrapInCDATA("123<![CDATA[wow<&>]]>]]><![CDATA[123"));
|
||||
assertEquals("<![CDATA[abcd]]]><![CDATA[]>]]>", XmlStringUtil.wrapInCDATA("abcd]]>"));
|
||||
assertEquals("<![CDATA[abcd]]]><![CDATA[]>efgh]]>", XmlStringUtil.wrapInCDATA("abcd]]>efgh"));
|
||||
assertEquals("<![CDATA[123<![CDATA[wow<&>]]]><![CDATA[]>]]]><![CDATA[]><![CDATA[123]]>", XmlStringUtil.wrapInCDATA("123<![CDATA[wow<&>]]>]]><![CDATA[123"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user