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