Skip to content

Commit 49c2fa5

Browse files
committed
Add target compile 11.
1 parent dc71cd5 commit 49c2fa5

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151
<artifactId>maven-compiler-plugin</artifactId>
5252
<version>3.8.0</version>
5353
<configuration>
54-
<source>1.8</source>
55-
<target>1.8</target>
54+
<source>11</source>
55+
<target>11</target>
5656
<encoding>UTF-8</encoding>
5757
<compilerArgs>
5858
<arg>-Xlint:unchecked</arg>

src/main/java/com/github/underscore/lodash/Xml.java

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public final class Xml {
6060
"((?:(?!\\s|=).)*)\\s*?=\\s*?[\"']?((?:(?<=\")(?:(?<=\\\\)\"|[^\"])*|(?<=')"
6161
+ "(?:(?<=\\\\)'|[^'])*)|(?:(?!\"|')(?:(?!\\/>|>|\\s).)+))");
6262
private static final Map<String, String> XML_UNESCAPE = new HashMap<String, String>();
63+
private static final org.w3c.dom.Document DOCUMENT = createDocument();
6364

6465
static {
6566
XML_UNESCAPE.put(QUOT, "\"");
@@ -713,8 +714,15 @@ public static String escapeName(String name, Set<String> namespaces) {
713714
}
714715
final StringBuilder result = new StringBuilder();
715716
char ch = name.charAt(0);
716-
if (com.sun.org.apache.xerces.internal.util.XMLChar.isNameStart(ch) && ch != ':' || ch == '?') {
717-
result.append(ch);
717+
if (ch != ':') {
718+
try {
719+
if (ch != '?') {
720+
DOCUMENT.createElement(String.valueOf(ch));
721+
}
722+
result.append(ch);
723+
} catch (Exception ex) {
724+
result.append("__").append(Base32.encode(Character.toString(ch))).append("__");
725+
}
718726
} else {
719727
result.append("__").append(Base32.encode(Character.toString(ch))).append("__");
720728
}
@@ -723,8 +731,13 @@ public static String escapeName(String name, Set<String> namespaces) {
723731
if (ch == ':' && ("xmlns".equals(name.substring(0, i))
724732
|| namespaces.contains(name.substring(0, i)))) {
725733
result.append(ch);
726-
} else if (com.sun.org.apache.xerces.internal.util.XMLChar.isName(ch) && ch != ':') {
727-
result.append(ch);
734+
} else if (ch != ':') {
735+
try {
736+
DOCUMENT.createElement("a" + ch);
737+
result.append(ch);
738+
} catch (Exception ex) {
739+
result.append("__").append(Base32.encode(Character.toString(ch))).append("__");
740+
}
728741
} else {
729742
result.append("__").append(Base32.encode(Character.toString(ch))).append("__");
730743
}
@@ -1348,6 +1361,18 @@ private static org.w3c.dom.Document createDocument(final String xml)
13481361
return builder.parse(new org.xml.sax.InputSource(new java.io.StringReader(xml)));
13491362
}
13501363

1364+
private static org.w3c.dom.Document createDocument() {
1365+
try {
1366+
final javax.xml.parsers.DocumentBuilderFactory factory =
1367+
javax.xml.parsers.DocumentBuilderFactory.newInstance();
1368+
factory.setNamespaceAware(true);
1369+
final javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();
1370+
return builder.newDocument();
1371+
} catch (javax.xml.parsers.ParserConfigurationException ex) {
1372+
return null;
1373+
}
1374+
}
1375+
13511376
public static Object fromXmlMakeArrays(final String xml) {
13521377
try {
13531378
org.w3c.dom.Document document = createDocument(xml);

0 commit comments

Comments
 (0)