我的程序JAVA:
public static String toXml() {
KtpMessage ktpMessage =new KtpMessage();
ktpMessage.setdetails("test");
XStream xstream = new XStream(new StaxDriver());
String objectXml = xstream.toXML(ktpMessage);
return objectXml;
结果是:
<?xml version='1.0' encoding='utf-8'?><myclasses.Message><details>test</details></myclasses.Message>
我的问题:
我想生成“objectXml”但没有 <?xml version='1.0' encoding='utf-8'?>
我该怎么做?
我想要这样的结果:
<myclasses.Message><details>test</details></myclasses.Message>
谢谢你的帮助
最佳答案
如果您创建自己的 StaxWriter您可以使用构造函数告诉它不要编写 startDocument
StAX 事件(这是创建 XML 声明的原因)。像这样(省略了异常处理):
StaxDriver drv = new StaxDriver();
XStream xstream = new XStream(drv);
StringWriter strWriter = new StringWriter();
StaxWriter sw = new StaxWriter(drv.getQnameMap(),
drv.getOutputFactory().createXMLStreamWriter(strWriter),
false, // don't do startDocument
true); // do repair namespaces
xstream.marshal(ktpMessage, sw);
sw.close();
String objectXml = strWriter.toString();
关于java - 没有 XML 声明的 XStream(new StaxDriver()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15762109/