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 XStream输出中没有新行(输出为一行)_Java_Xml_Serialization_Xstream - Fatal编程技术网

Java XStream输出中没有新行(输出为一行)

Java XStream输出中没有新行(输出为一行),java,xml,serialization,xstream,Java,Xml,Serialization,Xstream,我想用Xstream序列化对象的ArrayList。它可以工作,但整个输出都写在一行中。我的代码如下所示: XStream xstream = new XStream(new StaxDriver()); String target = fc.saveFile("xml", "Choose where to save your events"); if (!target.contains(".xml")) target += ".xml"; try (FileWriter fw = ne

我想用Xstream序列化对象的ArrayList。它可以工作,但整个输出都写在一行中。我的代码如下所示:

XStream xstream = new XStream(new StaxDriver());
String target = fc.saveFile("xml", "Choose where to save your events");
if (!target.contains(".xml"))
    target += ".xml";
try (FileWriter fw = new FileWriter(target)) {
    xstream.toXML(FooList.getFooList(), fw); //// this returns an ArrayList<Foo>
} catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}
<?xml version="1.0" ?><list><foo><id>0</id> [...] </foo></list>
XStream XStream=newxstream(new statxdriver());
String target=fc.saveFile(“xml”,“选择保存事件的位置”);
如果(!target.contains(“.xml”))
目标+=“.xml”;
try(FileWriter fw=newfilewriter(目标)){
xstream.toXML(doulist.getdoulist(),fw);///这将返回一个ArrayList
}捕获(IOE1异常){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
输出如下所示:

XStream xstream = new XStream(new StaxDriver());
String target = fc.saveFile("xml", "Choose where to save your events");
if (!target.contains(".xml"))
    target += ".xml";
try (FileWriter fw = new FileWriter(target)) {
    xstream.toXML(FooList.getFooList(), fw); //// this returns an ArrayList<Foo>
} catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}
<?xml version="1.0" ?><list><foo><id>0</id> [...] </foo></list>
0[…]
嗯,所有的东西都写在一行里。你知道怎么改变吗?我只想有一个标准格式,如:

<list> 
  <id>
    ....

....

好,我得到答案了。。。问题是

XStream xstream = new XStream(new StaxDriver());
应该是

XStream xstream = new XStream(new DomDriver());

也许会有帮助,我已经看过这个了。遗憾的是没有帮助。看起来标准输出应该是新的行,但对我来说还没有得到答案。。。问题是XStream XStream=newxstream(new StaxDriver());应该是XStream XStream=new XStream(new DomDriver());内扎,你应该加上这个作为答案并接受它(你可以接受你自己问题的答案)。这样人们就知道问题已经解决了,如果有人有同样的问题,他们可以很快找到解决办法。