Java XMLSerializer&;OutputFormat已弃用

Java XMLSerializer&;OutputFormat已弃用,java,xmlserializer,outputformat,Java,Xmlserializer,Outputformat,关于这个问题,我正试图从S.O.的Java专家那里得到一些帮助。在一个长时间的项目中,我遇到了一个XMLSerializer&OutputFormat的旧实现……我想知道是否有人能给我一个关于该做什么的指示,我非常感谢你的意见 我尝试了这个,但我无法用LSSerializer替换 问题是 因此,基本上有人在项目中使用了直接来自IBM内部JRE的类XMLSerializer&OutputFormat。。。 如何使用org.w3c将这种代码的平静转换为不依赖于WAS(websphereapplic

关于这个问题,我正试图从S.O.的Java专家那里得到一些帮助。在一个长时间的项目中,我遇到了一个XMLSerializer&OutputFormat的旧实现……我想知道是否有人能给我一个关于该做什么的指示,我非常感谢你的意见

我尝试了这个,但我无法用LSSerializer替换

问题是

因此,基本上有人在项目中使用了直接来自IBM内部JRE的类XMLSerializer&OutputFormat。。。 如何使用org.w3c将这种代码的平静转换为不依赖于WAS(websphereapplicationserver)的依赖关系

...
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
...
public String toString() {
    StringWriter res = new StringWriter();
    OutputFormat format = new OutputFormat(doc);//doc is type org.w3c.dom.Document
    format.setIndenting(true);
    XMLSerializer serializer = new XMLSerializer(res, format);

    try {
        serializer.serialize(doc);
    } catch (IOException e) {
        res.write(e.getMessage());
        e.printStackTrace();
    }
    return res.toString();
}
编辑

后来我设法用我先前开始的方法做了这件事…这里它几乎是一个副本

...
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.bootstrap.DOMImplementationRegistry;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSOutput;
import org.w3c.dom.ls.LSSerializer;
...

    public String toString() {
    StringWriter stringWriter = new StringWriter();
    String subscrXML=null;
    DOMImplementationRegistry registry = null;
    DOMImplementationLS impls = null;
    LSOutput domOutput = null;
    LSSerializer domWriter = null;
    try {

    registry =  DOMImplementationRegistry.newInstance();

    impls =  (DOMImplementationLS)registry.getDOMImplementation("LS");

     //Prepare the output
      domOutput = impls.createLSOutput();
      domOutput.setEncoding(java.nio.charset.Charset.defaultCharset().name());            
      domOutput.setCharacterStream(stringWriter);
      domOutput.setEncoding("UTF-8");

     //Prepare the serializer
      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(doc, 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 (ClassCastException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }


    return subscrXML;
}
。。。
导入org.w3c.dom.DOMConfiguration;
导入org.w3c.dom.domeException;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.Node;
导入org.w3c.dom.NodeList;
导入org.w3c.dom.bootstrap.DOMImplementationRegistry;
导入org.w3c.dom.ls.dom实现;
导入org.w3c.dom.ls.LSOutput;
导入org.w3c.dom.ls.LSSerializer;
...
公共字符串toString(){
StringWriter StringWriter=新StringWriter();
字符串subscrXML=null;
DOMImplementationRegistry=null;
doImplementals impls=null;
LSOutput domOutput=null;
LSSerializer domWriter=null;
试一试{
registry=doImplementationRegistry.newInstance();
impls=(dominimplementals)registry.getdominimplementation(“LS”);
//准备输出
domOutput=impls.createLSOutput();
setEncoding(java.nio.charset.charset.defaultCharset().name());
setCharacterStream(stringWriter);
设置编码(“UTF-8”);
//准备序列化程序
domWriter=impls.createLSSerializer();
DOMConfiguration domConfig=domWriter.getDomConfig();
setParameter(“format pretty print”,true);
setParameter(“元素内容空白”,true);
domWriter.setNewLine(“\r\n”);
setParameter(“cdata节”,Boolean.TRUE);
//最后,写
domWriter.write(doc,domOutput);
subscrXML=domOutput.getCharacterStream().toString();
//DOMStringList dsl=domConfig.getParameterNames();
System.out.println(subscrXML);
/*
//只是出于好奇。。。。

对于(int i=0;iImport org.w3c.dom.ls.*并改用LLSSerializer!您还需要创建一个dominemplementals来调用,以便创建序列化程序