|
|
@@ -1,21 +1,21 @@ |
|
|
|
package me.chanjar.weixin.common.util; |
|
|
|
|
|
|
|
import java.io.StringReader; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
import com.google.common.collect.Lists; |
|
|
|
import com.google.common.collect.Maps; |
|
|
|
import com.google.common.collect.Sets; |
|
|
|
import org.dom4j.Document; |
|
|
|
import org.dom4j.DocumentException; |
|
|
|
import org.dom4j.Element; |
|
|
|
import org.dom4j.Node; |
|
|
|
import org.dom4j.io.SAXReader; |
|
|
|
import org.dom4j.tree.DefaultText; |
|
|
|
import org.xml.sax.SAXException; |
|
|
|
|
|
|
|
import com.google.common.collect.Lists; |
|
|
|
import com.google.common.collect.Maps; |
|
|
|
import com.google.common.collect.Sets; |
|
|
|
import java.io.StringReader; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Set; |
|
|
|
|
|
|
|
/** |
|
|
|
* <pre> |
|
|
@@ -31,13 +31,18 @@ public class XmlUtils { |
|
|
|
Map<String, Object> map = new HashMap<>(16); |
|
|
|
try { |
|
|
|
SAXReader saxReader = new SAXReader(); |
|
|
|
saxReader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); |
|
|
|
saxReader.setFeature("http://javax.xml.XMLConstants/feature/secure-processing", true); |
|
|
|
saxReader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); |
|
|
|
saxReader.setFeature("http://xml.org/sax/features/external-general-entities", false); |
|
|
|
saxReader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); |
|
|
|
Document doc = saxReader.read(new StringReader(xmlString)); |
|
|
|
Element root = doc.getRootElement(); |
|
|
|
List<Element> elements = root.elements(); |
|
|
|
for (Element element : elements) { |
|
|
|
map.put(element.getName(), element2MapOrString(element)); |
|
|
|
map.put(element.getName(), element2MapOrString(element)); |
|
|
|
} |
|
|
|
} catch (DocumentException e) { |
|
|
|
} catch (DocumentException | SAXException e) { |
|
|
|
throw new RuntimeException(e); |
|
|
|
} |
|
|
|
|
|
|
|