Modify the com.sun.org.apache.xml.internal.serialize.XMLSerializer & com.sun.org.apache.xml.internal.serialize.OutputFormat file

Using com.sun.org.apache.xml.internal.serialize.XMLSerializer and com.sun.org.apache.xml.internal.serialize.OutputFormat causes some compilation errors using java 1.6. The solution I found is to use org.apache.xml.serialize.XMLSerializer and org.apache.xml.serialize.OutputFormat after adding xerces. The problem is that these classes are out of date. What can I use without replacing them without touching the code? Thnx This is the dependency I used:

 <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.9.1</version> </dependency> 
+4
source share
1 answer

We can use the LSSerializer class from the org.w3c.dom.ls package

 public String toXML(Node source) { String subscrXML=null; StringWriter stringWriter=new StringWriter(); try { //Get the implementations DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance(); DOMImplementationLS impls = (DOMImplementationLS)registry.getDOMImplementation("LS"); //Prepare the output LSOutput domOutput = impls.createLSOutput(); domOutput.setEncoding(java.nio.charset.Charset.defaultCharset().name()); domOutput.setCharacterStream(stringWriter); domOutput.setEncoding(ENCODING); //Prepare the serializer LSSerializer domWriter = impls.createLSSerializer(); DOMConfiguration domConfig = domWriter.getDomConfig(); domConfig.setParameter("format-pretty-print", true); domConfig.setParameter("element-content-whitespace", true); domWriter.setNewLine("\r\n"); domConfig.setParameter("cdata-sections", Boolean.TRUE); //And finaly, write domWriter.write(source, domOutput); subscrXML = domOutput.getCharacterStream().toString(); DOMStringList dsl=domConfig.getParameterNames(); System.out.println(subscrXML); /* // Just for curiosity.... for(int i=0;i<dsl.getLength();i){ System.out.println(dsl.item(i)" = ["domConfig.getParameter(dsl.item(i))"]"); }*/ } catch (Exception e) { e.printStackTrace(); } return subscrXML; } 
+2
source

Source: https://habr.com/ru/post/1396884/


All Articles