Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中将文档(XML)直接转换为字符串,无需使用transform或XMLSerializer_Java_Xml_String_Domdocument - Fatal编程技术网

在java中将文档(XML)直接转换为字符串,无需使用transform或XMLSerializer

在java中将文档(XML)直接转换为字符串,无需使用transform或XMLSerializer,java,xml,string,domdocument,Java,Xml,String,Domdocument,是否有另一种方法可以将XML文档对象转换为字符串,就像使用Apache API中的transform或XmlSerializer一样?我不想使用上面提到的转换方法,因为它会呈现我的输出xml修改标记表示(比如将空标记折叠为单例标记)。我需要从文档对象以字符串输出的转换方法(将文档对象的内容视为文本)。通过扩展或: 您可以编写自己的序列化程序。。。但这需要做很多工作。如果下游处理器关心和之间的差异,那么它就坏了。根据规范,两种形式都是可以接受的,具有相同的效果。你的要求没有意义。DOM文档对象没有

是否有另一种方法可以将XML
文档
对象转换为
字符串
,就像使用Apache API中的transform或
XmlSerializer
一样?我不想使用上面提到的转换方法,因为它会呈现我的输出xml修改标记表示(比如将空标记折叠为单例标记)。我需要从
文档
对象以
字符串
输出的转换方法(将
文档
对象的内容视为文本)。

通过扩展或:


您可以编写自己的序列化程序。。。但这需要做很多工作。如果下游处理器关心
之间的差异,那么它就坏了。根据规范,两种形式都是可以接受的,具有相同的效果。你的要求没有意义。DOM文档对象没有“标记表示”。任何序列化DOM文档的方法都必须设计一个表示,因为没有要保留的现有表示。您实际运行过这段代码吗?你能描述一下输出是什么样子吗?事实上,@kdgregory。。。如果您根据xml.org上的文档添加一个调用SAXParser的主函数,当您将实例变量打印到控制台时,它只输出任何xml文档中的文本。@hd1,我的输出字符串中还需要xml标记,而不仅仅是xml
文档中的文本节点。
class Parser extends DefaultHandler { 
    StringBuffer sb = new StringBuffer();
    public void characters(char[] ch, int start, int length) {
        sb.append(new String(ch, start, length);
    }

    public void startElement(String ns, String qname, String name, Attributes attrs) {
        sb.append(qname+": ");
    }

    public void endElement(String ns, String qname, String name) {
        sb.append("\n");
    }

    public String toString() {
        return sb.toString();
    }
}