Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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字符串 我有一个java程序,旨在考虑XML DOM并将其写入字符串。 我正在使用这些包:org.w3c.dom.*和javax.xml.parsers.*_Java_Xml - Fatal编程技术网

在Java中从文档获取xml字符串 我有一个java程序,旨在考虑XML DOM并将其写入字符串。 我正在使用这些包:org.w3c.dom.*和javax.xml.parsers.*

在Java中从文档获取xml字符串 我有一个java程序,旨在考虑XML DOM并将其写入字符串。 我正在使用这些包:org.w3c.dom.*和javax.xml.parsers.*,java,xml,Java,Xml,所以我有DocumentBuilder,Document,Element对象 有没有办法在一次调用中获取表示我的xml dom的字符串???这不是一次调用,而是: TransformerFactory transfac = TransformerFactory.newInstance(); Transformer trans = transfac.newTransformer(); trans.setOutputProperty(OutputKeys.METHOD, "xml"); trans.

所以我有
DocumentBuilder
Document
Element
对象

有没有办法在一次调用中获取表示我的xml dom的字符串???

这不是一次调用,而是:

TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.METHOD, "xml");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", Integer.toString(2));

StringWriter sw = new StringWriter();
StreamResult result = new StreamResult(sw);
DOMSource source = new DOMSource(doc.getDocumentElement());

trans.transform(source, result);
String xmlString = sw.toString();

setOutputProperty方法使字符串输出更漂亮,因此可以将其取出

我还在寻找一种廉价高效的方法来序列化DOM。到目前为止,我只看到两种选择:

  • JAXP转换(类似于Grammin)
  • 类似于此处的LSSerializer:

也许您可以尝试LSSerializer方法(但不是一次调用)。

org.apache.axis.utils.XMLUtils.PrettyDocumentToString(Document)方法存在一个问题,即标记值中包含空格


解决方案是使用org.apache.axis.utils.XMLUtils.DocumentToString(Document)方法。

ok。。。但这不是对xml转换的一个调用吗??真的有必要吗?这个库是否可能不实现tostring来实现这个目标?。。。不过,谢谢你。我会试试的。当然-使用Grammin的解决方案并将其提取到一个方法中-然后您有一个调用:
stringxml=serialize(document)嗯,这是不同的。。。包装并不总是最好的解决方案:)然而,汉克:)嗯,是的,这是一个很好的方法,我尝试了它,并工作。。。谢谢你
String xmlString =  org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);